• Nenhum resultado encontrado

Técnica de rastreamento e perseguição de alvo utilizando o algoritmo Haar cascade aplicada a robôs terrestres com restrições de movimento

N/A
N/A
Protected

Academic year: 2021

Share "Técnica de rastreamento e perseguição de alvo utilizando o algoritmo Haar cascade aplicada a robôs terrestres com restrições de movimento"

Copied!
105
0
0

Texto

(1)UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE. U NIVERSIDADE F EDERAL DO R IO G RANDE DO N ORTE C ENTRO DE T ECNOLOGIA P ROGRAMA DE P ÓS -G RADUAÇÃO EM E NGENHARIA M ECATRÔNICA. Técnica de rastreamento e perseguição de alvo utilizando o algoritmo Haar cascade aplicada a robôs terrestres com restrições de movimento. Rafael Cardoso Pereira. Orientador: Prof. Dr. Allan de Medeiros Martins. Dissertação de Mestrado apresentada ao Programa de Pós-Graduação em Engenharia Mecatrônica como parte dos requisitos. para obtenção do título Mestre em Engenharia Mecatrônica. Número de ordem PEM: M007 Natal, RN, junho de 2017.

(2) Universidade Federal do Rio Grande do Norte – UFRN Sistema de Bibliotecas – SISBI Catalogação da Publicação na Fonte - Biblioteca Central Zila Mamede Pereira, Rafael Cardoso. Técnica de rastreamento e perseguição de alvo utilizando o algoritmo Haar cascade aplicada a robôs terrestres com restrições de movimento / Rafael Cardoso Pereira. - 2017. 102 f. : il. Dissertação (mestrado) - Universidade Federal do Rio Grande do Norte, Centro de Tecnologia, Programa de Pós-Graduação em Engenharia Mecatrônica. Natal, RN, 2017. Orientador: Prof. Dr. Allan de Medeiros Martins.. 1. Visão computacional - Dissertação. 2. Detecção de alvo - Dissertação. 3. Estimativa de configuração - Dissertação. 4. Controle com restrições - Dissertação. 5. Geração de caminhos - Dissertação. 6. Controle não-holonômico Dissertação. I. Martins, Allan de Medeiros. II. Título. RN/UFRN/BCZM. CDU 007.52.

(3) Técnica de rastreamento e perseguição de alvo utilizando o algoritmo Haar cascade aplicada a robôs terrestres com restrições de movimento. Rafael Cardoso Pereira. Dissertação de Mestrado aprovada em 21 de junho de 2017 pela banca examinadora composta pelos seguintes membros:. Prof. Dr. Allan de Medeiros Martins (orientador) . . . . . . . . . . . . . . . DEE/UFRN. Prof. Dr. Tiago Pereira do Nascimento . . . . . . . . . . . . . . . . . . . . . . . . DSCO/UFPB. Prof Dr Adrião Duarte Doria Neto . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCA/UFRN. Prof. Dr. Pablo Javier Alsina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCA/UFRN.

(4) Agradecimentos. Ao meu orientador, professor Allan, sou grato pela orientação. Ao professor Pablo pela imensa ajuda na produção deste trabalho. Aos demais colegas de pós-graduação, pelas críticas e sugestões. À minha família pelo apoio durante esta jornada. À CAPES, pelo apoio financeiro..

(5) Resumo. A habilidade de seguir ou de se mover acompanhando uma pessoa ou um objeto especificado, capaz de se deslocar, é uma perícia necessária em diversos agentes autônomos. Tais agentes são amplamente utilizados para realizar várias tarefas presentes no cotidiano, podendo ser aplicados tanto em tarefas corriqueiras, como em carrinhos de supermercado ou limpeza de ambientes, quanto às tarefas de mais alto risco, como em grandes indústrias ou carros autônomos. A ideia apresentada aqui é a de desenvolver um método de rastreamento e perseguição de alvo aplicável à robôs móveis terrestres com rodas que possuem restrições em sua movimentação, que fazem com que técnicas de controle padrão nem sempre possam ser aplicadas. O trabalho desenvolvido aqui também leva em consideração a utilização de uma técnica de detecção de alvo que possa se tornar adaptável a praticamente qualquer tipo de alvo estipulado pelo projetista de acordo com as necessidades de sua aplicação. O desenvolvimento dos métodos propostos foram realizados agregando técnicas de reconhecimento de padrões utilizados em câmeras de padrão RGB comuns, técnicas de estimativa de posição e orientação e algoritmos de controle inteligentes, que possuem baixo custo computacional, aplicáveis a robôs com restrições de movimentação. Palavras-chave: visão computacional; detecção de alvo; estimativa de configuração; classificadores cascata; controle não-holonômico; controle com restrições; geração de caminhos..

(6) Abstract. The ability to follow or move along with a specified moving person or object, is a necessary skill in several autonomous agents. Such agents are widely used to perform various tasks in everyday life, and they can be applied either in everyday tasks, such as in supermarket carts or cleaning environments, as well in high-risk tasks like large industries or autonomous cars. The idea presented here is to develop a target tracking and following method applicable to mobile wheeled land robots that have restrictions on their movement, which means that standard control techniques cannot always be applied. The work developed here also takes into account the use of a target detection technique that can be adapted to practically any type of target stipulated by the designer according to the needs of its application. The development of the proposed methods is accomplished by adding standard recognition techniques used in common RGB type cameras, position estimation and orientation techniques, and intelligent control algorithms, with a low computational cost, applicable to robots with movement restrictions. Keywords: computer vision; target detection; configuration estimation; cascade classifiers; non-holonomic control; restricted control; path generation..

(7) Sumário. Sumário. i. Lista de Figuras. iii. Lista de Tabelas. vii. Lista de Símbolos e Nomeclaturas. viii. 1. INTRODUÇÃO 1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2. REVISÃO BIBLIOGRÁFICA 2.1 Contextualização do trabalho . . . . . . . . 2.2 Delimitação do problema . . . . . . . . . . 2.3 Controle baseado em visão . . . . . . . . . 2.4 Apresentação dos métodos utilizados . . . . 2.4.1 Haar Features . . . . . . . . . . . . 2.4.2 Classificadores em cascata . . . . . 2.4.3 Estimativas de posição e orientação 2.4.4 Abordagem de controle . . . . . . . 2.5 Revisão do softwares utilizados . . . . . . . 2.5.1 Coppelia Robotics V-REP . . . . . 2.5.2 MATLAB . . . . . . . . . . . . . . 2.5.3 OpenCV . . . . . . . . . . . . . .. 3. 1 2 3 3. . . . . . . . . . . . .. 4 6 7 7 8 9 9 12 12 13 14 14 15. METODOLOGIA DE PESQUISA 3.1 Forma de abordagem ao problema . . . . . . . . . . . . . . . . . . . . . 3.2 Descrição das técnicas escolhidas . . . . . . . . . . . . . . . . . . . . . 3.2.1 Notação matemática . . . . . . . . . . . . . . . . . . . . . . . .. 17 17 18 18. i. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . ..

(8) . . . . . . . . . . . . . . . .. 18 20 22 29 29 31 33 33 35 37 37 39 41 42 43 44. . . . . . . . . .. 53 53 54 56 61 62 65 70 74 78. CONSIDERAÇÕES FINAIS 5.1 Contribuições do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Comentários gerais e trabalhos futuros . . . . . . . . . . . . . . . . . . .. 83 83 84. 3.3 3.4. 3.5. 4. 5. 3.2.2 Descrição dos referenciais . . . . . . . . . . . . . . . . . 3.2.3 Escolha do alvo . . . . . . . . . . . . . . . . . . . . . . . Estimativa de posicionamento do alvo . . . . . . . . . . . . . . . Estimativa de orientação do Alvo . . . . . . . . . . . . . . . . . . 3.4.1 Especificando uma forma delimitadora . . . . . . . . . . 3.4.2 Processo de estimativa . . . . . . . . . . . . . . . . . . . Estratégias de controle . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Modelagem do robô . . . . . . . . . . . . . . . . . . . . 3.5.2 Modelo não-linear . . . . . . . . . . . . . . . . . . . . . 3.5.3 Dinâmica do alvo . . . . . . . . . . . . . . . . . . . . . . 3.5.4 Estratégia geral de controle . . . . . . . . . . . . . . . . . 3.5.5 Lei de controle PI . . . . . . . . . . . . . . . . . . . . . . 3.5.6 Proposição para o melhoramento da estratégia de controle 3.5.7 Esquema de controle baseado em geração de caminhos . . 3.5.8 Considerações . . . . . . . . . . . . . . . . . . . . . . . 3.5.9 Polinômio cúbico . . . . . . . . . . . . . . . . . . . . . .. RESULTADOS OBTIDOS 4.1 Processo de treinamento do detector de alvo . . . . 4.2 Teste do sistema de detecção de alvo . . . . . . . . 4.3 Resultados dos estimadores de posição e orientação 4.4 Considerações para os testes de controle . . . . . . 4.5 Processo de controle PID . . . . . . . . . . . . . . 4.6 Processo de controle por geração de caminhos . . . 4.7 Teste na condição de desnível . . . . . . . . . . . . 4.8 Teste com velocidade do alvo variável . . . . . . . 4.9 Teste do limite de velocidade do alvo . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . .. REFERÊNCIAS BIBLIOGRÁFICAS A Diagrama mostrando o algoritmo Adaboost usado na seleção de Features. 86.

(9) Lista de Figuras. 2.1. 2.2. 3.1 3.2. 3.3 3.4 3.5 3.6. 3.7. 3.8. 3.9. Alguns exemplos de features Haar utilizadas para detecção de padrões e texturas em imagens. (1) Feature de aresta vertical. (2) Feature de aresta horizontal. (3) Feature de linha vertical. (4) Feature de linha diagonal. . . Esquemático descrevendo um detector em cascata. Cada sub-janela passa por uma série de classificadores caso o resultado do anterior seja positivo (V) e é descartada em caso de resultado de classificação negativo (F). . . Configuração de modelagem do robô móvel terrestre no espaço de trabalho bidimensional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ilustração do padrão escolhido para a discriminação do alvo na simulações. O padrão é definido pelo projetista do sistema e pode ser uma combinação de praticamente quaisquer imagens. . . . . . . . . . . . . . . . . Ilustração mostrando o modelo de câmera em perspectiva e os eixos de coordenadas envolvidos com um ponto P no espaço 3D. Créditos: OpenCV Vista lateral da cena onde o alvo está sobre o campo de visão do modelo de câmera em perspectiva. . . . . . . . . . . . . . . . . . . . . . . . . . Vista superior da cena onde o alvo está sobre o campo de visão do modelo de câmera em perspectiva. . . . . . . . . . . . . . . . . . . . . . . . . . Vista em perspectiva da cena onde o alvo está sobre o campo de visão do modelo de câmera em perspectiva. As linhas em vermelho representam as laterais do alvo que foram consideradas sempre na vertical. . . . . . . Imagem da ROI extraída durante simulação definida como uma caixa delimitadora 25% maior que a retornada pelo detector do padrão interno de alvo. Os quatro cantos do retângulo estão ressaltados por pontos em vermelho sobre a imagem adquirida. . . . . . . . . . . . . . . . . . . . . Ilustração do processo de estimativa de orientação calculado com base no arco-tangente das distâncias de dois pontos pertencentes ao alvo nos eixos x e z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Forma geral das não-linearidades de tipo zona-morta e saturação aplicadas às velocidades das rodas do modelo do robô. . . . . . . . . . . . . . iii. 9. 12. 19. 21 23 25 27. 28. 31. 32 36.

(10) 3.10 Diagrama de funcionamento geral da estratégia de controle idealizada para o sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 Ilustração do posicionamento desejado para o robô em relação ao alvo móvel ilustrando os ângulos envolvidos no processo de modelagem do controle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12 Ilustração do processo de geração de caminhos com as distâncias d e τ representadas. O ’X’ representa a posição desejada para o robô. . . . . . 3.13 Ilustração do sistema de manobras para tentativa de recuperação de alvo representando o referencial fixo da câmera no instante em que o alvo foi visto pela última vez. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6 4.7. 4.8 4.9. Exemplo de alvo detectado em tempo real utilizando um detector multiescala para encontrar o padrão treinado mostrado na Figura 3.2. A caixa delimitadora retornada pelo detector está destacada em vermelho. . . . . Ilustração do ambiente de simulação criado no software V-REP EDU, criado para analisar a operação dos estimadores de posição e orientação. A imagem mostra o alvo e o robô que contêm o sensor de visão utilizado para captar a presença do alvo. . . . . . . . . . . . . . . . . . . . . . . . Resultados, em metros, obtidos utilizando o estimador de posição sobre o eixo Zc , onde zest são os valores estimados e Pz os valores utilizados no ambiente de simulação. . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultados, em metros, obtidos utilizando o estimador de posição sobre o eixo Xc , onde xest são os valores estimados e Px os valores utilizados no ambiente de simulação. . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultados, em graus, obtidos utilizando o estimador de orientação para estimativa da orientação do alvo no plano 2D, onde θest são os valores estimados e θ os valores estipulados no simulador. . . . . . . . . . . . . . Caminho do alvo utilizado nas simulações cujos resultados são apresentados neste documento. . . . . . . . . . . . . . . . . . . . . . . . . . . . Deslocamento do robô e da posição desejada sobre o plano terrestre de movimentação obtido a cada passo de integração da simulação do controle PID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gráfico que representa o sinal de erro de orientação entre o alvo e o robô sobre o plano de movimento medido durante a simulação do controle PID. Velocidades angulares aplicadas às rodas esquerda, ωe , e direita, ωd , do robô durante a simulação do controle PID. . . . . . . . . . . . . . . . . .. 38. 39 44. 49. 54. 57. 58. 59. 59 61. 62 63 64.

(11) 4.10 Gráfico traçado com os resultados da posição desejada e a posição do robô sobre o plano de movimento obtido na simulação do sistema de controle por geração de caminhos. . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11 Gráfico que representa o sinal de erro de orientação entre o alvo e o robô sobre o plano de movimento medido durante a simulação do controle por geração de caminhos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.12 Gráfico que representa a média e o desvio padrão do erro de orientação entre o alvo e o robô sobre o plano de movimento, medido para diversas condições diferentes de comportamento do alvo. . . . . . . . . . . . . . . 4.13 Velocidades angulares aplicadas às rodas esquerda, ωe , e direita, ωd , do robô durante a simulação do controle por geração de caminhos. . . . . . . 4.14 Ilustração do ambiente de simulação criado no software V-REP EDU, com a configuração criada para analisar a operação do algoritmo de controle na presença de um desnível de terreno, representado na figura pela circunferência sob o alvo. . . . . . . . . . . . . . . . . . . . . . . . . . . 4.15 Resultados de posição desejada e posição do robô sobre o plano de movimento para o teste de perseguição na presença de desnível utilizando o esquema de controle PID. . . . . . . . . . . . . . . . . . . . . . . . . . . 4.16 Gráficos com os resultados obtidos com a simulação na condição de desnível com controle PID, (a) representa o sinal de erro de posição no eixo Xw entre o alvo e o robô, (b) representa o sinal de erro de posição no eixo Yw entre o alvo e o robô e (c) representa o sinal de erro de orientação entre o alvo e o robô sobre o plano de movimento. O intervalo de desnível está marcado pela linha pontilhada nos gráficos. . . . . . . . . . . . . . . . . 4.17 Resultados de posição desejada e posição do robô sobre o plano de movimento para o teste de perseguição na presença de desnível utilizando o esquema de controle por geração de caminhos. . . . . . . . . . . . . . . . 4.18 Gráficos com os resultados obtidos com a simulação na condição de desnível com controle por geração de caminhos, (a) representa o sinal de erro de posição no eixo Xw entre o alvo e o robô, (b) representa o sinal de erro de posição no eixo Yw entre o alvo e o robô e (c) representa o sinal de erro de orientação entre o alvo e o robô sobre o plano de movimento. O intervalo de desnível está marcado pela linha pontilhada nos gráficos. . . 4.19 Gráficos da velocidade do robô e do alvo durante a simulação com velocidade variável com controle PID. . . . . . . . . . . . . . . . . . . . . .. 66. 67. 68 69. 70. 71. 72. 73. 74 75.

(12) 4.20 Gráfico que representa o sinal de erro de orientação entre o alvo e o robô sobre o plano de movimento, medido durante a simulação com velocidade variável. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.21 Gráficos da velocidade do robô e do alvo durante a simulação com velocidade variável com controle por geração de caminhos. . . . . . . . . . . 4.22 Gráfico que representa o sinal de erro de orientação entre o alvo e o robô sobre o plano de movimento, medido durante a simulação com velocidade variável. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.23 Resultados das velocidades medidas no teste de velocidade máxima para o alvo. A velocidade do alvo é representada pela curva em vermelho e a velocidade do robô pela curva em azul. . . . . . . . . . . . . . . . . . . . 4.24 Velocidades angulares aplicadas às rodas do robô durante o teste de velocidade máxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Diagrama que descreve o algoritmo de treinamento de Viola&Jones que foi descrito no texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 76 77. 78. 79 80.

(13) Lista de Tabelas. 4.1. 4.2 4.3. 4.4. 4.5. 4.6 4.7. Tabela com os valores de tempo de cálculo de estimativa, em segundos, utilizando o detector em dois diferentes hardwares: um computador de mesa (PC) e um computador embarcado (Raspberry PI). . . . . . . . . . Estatísticas calculadas sobre o erro obtido entre os valores de estimativa e os valores estipulados, obtidos no teste do estimador de configuração. . Estatística calculada sobre o erro entre os valores de referência e de posição envolvidos no sistema de controle PID apresentado, para o agente móvel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estatística calculada sobre o erro entre os valores de referência e de posição envolvidos no sistema de controle por geração de caminhos, para o agente móvel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabela com os valores de velocidade máxima observadas para o robô com as dimensões especificadas operar sem oscilações em sua orientação, de acordo com os parâmetros de controle. . . . . . . . . . . . . . . . . . . . Tabela com os valores de velocidade máxima obtidos variando-se apenas o parâmetro de controle kl , com kθ fixo no valor de 0, 45. . . . . . . . . . Tabela com os valores de velocidade máxima obtidos variando-se apenas o parâmetro de controle kθ , com kl fixo no valor de 0, 55. . . . . . . . . .. vii. 55 60. 65. 68. 81 81 82.

(14) Lista de Símbolos e Nomeclaturas. 2D:. Bi-dimensional. 3D:. Tri-dimensional. α(λ):. Parâmetro utilizado na geração de caminhos. API:. Application Programming Interface. βt :. Função de evolução utilizada no treinamento do seletor de features baseado no Adaboost. BSD:. Berkeley Software Distribution, licença de código aberto. εl (t):. Erro em distância calculado entre a posição desejada para o alvo e a posição atual do alvo. Fa :. Referencial de coordenadas do alvo móvel. Fc :. Referencial de coordenadas do da câmera fixa ao robô. f:. Distância focal fixa da lente da câmera utilizada. Fr :. Referencial de coordenadas do robô móvel. fx :. Tamanho efetivo em unidades de tamanho de pixel horizontal. fy :. Tamanho efetivo em unidades de tamanho de pixel vertical. h j:. Classificador fraco utilizado no algoritmo Adaboost. HOG:. Histogram of Oriented Gradients. LBP:. Local Binary Patterns. ODE:. Método baseado em Equação Diferencial Ordinária. cx , cy :. Coordenadas do centro óptico da imagem viii.

(15) ϕ(t):. Ângulo entre o eixo Zc da câmera e a reta que passa pela origem do eixo de câmera e pela posição do alvo. qd :. Configuração desejada para o alvo. qr (t):. Configuração do robô móvel. qt :. Configuração do alvo. RGB:. Padrão colorido utilizado em câmeras, baseado nas cores primárias: vermelho verde e azul. ROI:. Region of Interest (Região de Interesse). ROS:. Robotic Operational System. STL:. Standard Template Library. sx :. Tamanho efetivo de cada pixel na direção horizontal. sy :. Tamanho efetivo de cada pixel na direção vertical. θ(t):. Orientação do alvo em relação ao referencial de câmera sobre o plano terrestre de movimentação. u:. Parâmetro utilizado na estratégia de seguir caminho de Samson. v(t):. Velocidade linear do robô, medida em seu centro. ωd (t):. Velocidade angular aplicada à roda direita do robô. ωe (t):. Velocidade angular aplicada à roda esquerda do robô. Wi :. Peso utilizado no algoritmo Adaboost. ω(t):. Velocidade angular do robô, medida em seu centro.

(16) Capítulo 1 INTRODUÇÃO. Robôs autônomos têm sido introduzidos na sociedade atual de forma cada vez mais habitual, tanto no ambiente de grandes indústrias, que procuram automatizar ao máximo sua produção em larga escala, quanto em aspectos práticos do cotidiano, como os robôs de limpeza que são cada vez mais comuns nas residências. Diversos trabalhos têm sido produzidos nos últimos anos relacionados ao controle de robôs com restrições nãoholonômicas e também com a capacidade de torná-los capazes de rastrear e seguir um alvo que se desloca pelo espaço livre, tais trabalhos podem ser visualizados no capítulo 2. Essa é a motivação para o trabalho que é descrito neste documento. O tipo de sistema autônomo que se deseja desenvolver com a proposta que é apresentada aqui leva em consideração a possibilidade de se combinar técnicas simples, porém funcionais, que já são conhecidas na literatura, para resolver o problema de fazer com que um agente móvel identifique e siga um alvo planar, de forma que a implementação final seja simples e aplicável. A simplicidade no desenvolvimento dos métodos propostos é um grande diferencial quando se pensa na questão de custo computacional, podendo até mesmo tornar possível a implementação em hardware de certos subsistemas propostos, como o sistema de estimativa de posição e orientação de alvo. Um dos objetivos do trabalho é desenvolver um método versátil e barato para detecção e controle que faça com que o agente móvel seja capaz de seguir um determinado alvo se movendo livremente pelo espaço terrestre, mesmo que o tal agente possua restrições nãoholonômicas. A compensação das restrições de mobilidade do agente móvel é realizada pelas técnicas de controle propostas na implementação do mesmo. No projeto do sistema de detecção é proposta a utilização de um detector em cascata de características Haar (Haar-like features) treinado a priori utilizando o padrão definido como alvo. Esse alvo será considerado como sendo uma imagem plana, especificamente determinada para a aplicação onde será utilizada. Primeiramente é proposta um técnica de.

(17) CAPÍTULO 1. INTRODUÇÃO. 2. estimativa de posição e orientação para o alvo em relação à câmera do robô, e com base nessas leituras seria aplicado o controle de posicionamento para que o mesmo possa permanecer seguindo o alvo dentro do ambiente, sendo assim o sistema proposto se enquadra na categoria de servo visual baseado em posição. O método foi desenvolvido utilizando uma técnica de controle baseada em geração de caminho e ajuste de trajetória com restrições, aplicado diretamente aos atuadores nas rodas do agente móvel terrestre utilizado, que são os responsáveis pelas mudanças em sua velocidade linear e velocidade angular. O método de controle ideal deve ser projetado para manter o sensor de visão do agente móvel direcionado ao alvo de forma que o mesmo possa realizar o acompanhamento do deslocamento do alvo e continuar seguindoo sem implicações no sistema de detecção. Entretanto, devido às restrições presentes nas possibilidades de movimentação do agente móvel, tal tarefa não é trivial de se implementar, além disso nem sempre se é capaz de manter o alvo dentro da área de detecção da câmera. Os resultados de simulações com a aplicação do método proposto mostram indícios de que o mesmo pode ser mais robusto que outros métodos mais básicos de controle de posição e orientação, como a estratégia PID clássica.. 1.1. Objetivo. O objetivo principal desse trabalho é o desenvolvimento e teste de um sistema robótico agente móvel terrestre com restrições de movimentação lateral, que seja capaz de identificar e perseguir um determinado alvo e que seja de simples implementação, utilize apenas hardware acessível e seja o mais genérico possível. Pretende-se alcançar o objetivo aplicando técnicas de controle e de detecção de padrões já observados na literatura, que usualmente não são aplicadas no âmbito do objetivo proposto. Sendo então necessária a aplicação de algumas adaptações das técnicas utilizadas e da integração das mesmas no sistema de forma a mantê-lo funcional. A intenção inicial ao se propor o trabalho foi de realizar a implementação prática do mesmo, porém, devido a diversas complicações o trabalho desenvolvido aqui só foi levado até o nível de simulações, deixando a implementação prática para um trabalho futuro. O objetivo principal só poderá ser alcançado se todas as etapas provenientes dos objetivos específicos forem realizadas. A próxima seção contém a definição dos objetivos específicos que foram considerados nessa pesquisa..

(18) CAPÍTULO 1. INTRODUÇÃO. 1.1.1. 3. Objetivos específicos. Os seguintes objetivos específicos são propostos como sendo as medidas necessárias para a finalização do sistema proposto. 1. Aplicar e adaptar uma técnica de visão computacional e detecção de padrões como uma forma de detecção de um alvo genérico; 2. Desenvolver e implementar uma técnica computacionalmente simples de estimativa para a posição e orientação do alvo em relação ao agente móvel; 3. Desenvolver uma maneira de realizar o controle de um agente móvel com restrições de movimento lateral de forma a tornar possível a perseguição de um alvo planar, visando sempre diminuir o erro angular acumulado entre ele e o agente móvel; 4. Considerar, à todo momento, durante o desenvolvimento do sistema que o mesmo deve ser de implementação simples, aplicável e de baixo custo computacional.. 1.2. Estrutura do trabalho. Esse trabalho está organizado da seguinte forma: no Capítulo 2 é feita uma revisão literária sobre os trabalhos que já foram desenvolvidos até o momento e que tenham alguma relevância ou alguma semelhança com o trabalho descrito aqui, também serão fornecidos detalhes teóricos dos principais assuntos abordados. O Capítulo 3 apresenta a metodologia da pesquisa, fornecendo detalhes das implementações de cada subsistema que foi adaptado e desenvolvido no trabalho. No capítulo 4 são apresentados os resultados obtidos nos testes e simulações de cada subsistema apresentados no Capítulo 3. Finalmente, no Capítulo 5 são apresentadas as considerações finais, onde é exposta a opinião do autor do trabalho com relação aos resultados obtidos e sugestões de melhorias que podem ser realizadas em trabalhos futuros..

(19) Capítulo 2 REVISÃO BIBLIOGRÁFICA. Durante a pesquisa bibliográfica foram encontradas diversas propostas interessantes capazes de solucionar boa parte dos problemas propostos no projeto descrito aqui. Já existe uma grande área de pesquisa envolvendo o desenvolvimento de robôs inteligentes capazes de detectar alvos e tomar decisões de movimentação baseadas nisso, como pode ser visto em [Xiao et al. 2015], [Basit et al. 2015], [Freda & Oriolo 2007] e em [Kong et al. 2016]. A parte da literatura que envolve a detecção do alvo é bem vasta, uma grande combinação de estratégias de processamento de imagem e visão computacional pode ser combinada para gerar um descritor capaz de identificar a estrutura básica das features1 presentes num determinado alvo. Como deseja-se ter uma maior liberdade de escolha para o alvo utilizado de acordo com a aplicação final, optou-se por adotar features de descrição de textura em classificadores em cascata. As mais famosas e amplamente utilizadas são Haar, HOG e LBP. Como o foco do trabalho em si está na parte do controle do agente móvel dotado de restrições, então, a escolha do tipo de classificador utilizada para a detecção do alvo não foi tão explorada, apenas o suficiente para se obter resultados aplicáveis na prática. Neste trabalho deseja-se focar na utilização de técnicas mais simples para o controle do agente móvel, o sistema de controle proposto provavelmente deve seguir as linhas das ideias utilizadas em [Maya-Mendez et al. 2006] e [Frederico C. VIEIRA 2004]. Durante a procura por uma técnica de detecção de padrões em imagem que poderia ser utilizada no desenvolvimento do detector de alvo aplicado ao sistema deste trabalho foram considerados os trabalhos desenvolvidos por [Dalal & Triggs 2005], [Ojala et al. 2002] e [Viola & Jones 2001], o primeiro é muito utilizado para detecção de padrões semelhantes, comuns em determinado objeto, em imagens ou vídeo; o segundo e terceiro são 1 Preferiu-se não traduzir o termo "feature"nesse trabalho para que o real significado da palavra não fosse. perdido..

(20) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 5. mais utilizados em detecção de texturas planares. Qualquer um dos três classificadores apresentados pode ser adaptado ao problema dependendo do tipo de aplicação específica para o sistema. Em nosso caso deseja-se utilizar o detector em um alvo plano e aplicar o controle de forma que a visada da câmera esteja sempre com a menor diferença angular possível em relação ao plano do alvo, por conta disso e dos aspectos de adaptabilidade escolheu-se descritores de features Haar para o classificador como os mostrados em [Viola & Jones 2001] e [Lienhart & Maydt 2002]. No artigo desenvolvido por Viola e Jones em [Viola & Jones 2001] são propostas técnicas de treinamento de detectores de padrões e de detecção de objetos em imagens baseados no algoritmo AdaBoost, visto em [Freund & Schapire 1997], e na ideia de utilização de vários descritores em cascata aplicados à leitura rápida de imagens baseada em janelas de pixels utilizando uma nova forma de varredura integral para se realizar a detecção dos mesmos padrões com custo computacional reduzido. Como já foi comentado anteriormente os descritores seguem os padrões de fatures Haar para fazer a identificação da imagem proposta dentro da imagem integral, onde a saída de um é conectada a entrada do outro e a ideia é que descritores fracos combinados e selecionados de maneira otimizada podem gerar resultados equivalentes aos apresentados por outros descritores fortes com tempo e custo computacional consideravelmente reduzidos. Por ser uma técnica rápida, eficiente e de baixo custo computacional essa abordagem foi cogitada como sendo a mais apropriada dentre as técnicas apresentadas para esse tipo de aplicação de detecção de alvo mais genérica. Para aplicar as técnicas de controle sobre o alvo detectado a partir das imagens obtidas pela câmera acoplada ao robô agente móvel, deve-se ter conhecimento sobre a localização do alvo em relação ao robô. A estratégia de detecção de alvo utilizada é capaz apenas de indicar, com certo grau de erro, a posição onde o padrão estipulado como alvo se encontra em uma dada imagem. Assim, uma caixa delimitadora é posicionada na imagem onde provavelmente esse alvo se encontra. Apesar dessa informação da posição da caixa delimitadora ser a base da detecção do alvo, apenas com esses dados não se pode tirar nenhuma conclusão à respeito da posição e orientação do mesmo. Utilizando a caixa delimitadora retornada pelo detector é possível se ter uma ideia apenas à respeito da posição do alvo em relação à câmera, e pelo tamanho da caixa podemos ter uma ideia sobre a distância em profundidade do mesmo, porém nada pode-se inferir sobre a orientação. Diversos trabalhos realizados na literatura abordam a estimativa de posição e orientação de objetos a partir da detecção de características captadas por uma câmera, como pode ser.

(21) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 6. visto em [Shakunaga 1992], em [Oberkampf et al. 1993], em [Pinz & Schweighofer 2006] e em [Simon & Berger 2002]. A técnica abordada aqui é bem mais simplificada por não considerar o espaço tridimensional e será baseada apenas no modelo de projeção de câmera pontual (pinhole) que é descrito com maiores detalhes em [Trucco & Verri 1998] e em [Ballard & Brown 1982] e nas características físicas do alvo definido. Um dos diferenciais presentes no trabalho desenvolvido aqui, em relação aos trabalhos comentados, está na aplicação do detector baseado em um classificador que utiliza features Haar para a detecção de alvo, realizar a estimativa da posição e orientação do mesmo e desenvolver uma técnica de controle capaz de fazer com que o agente móvel persiga o alvo sem perder sua visada reduzindo consideravelmente o erro angular entre eles. O classificador Haar foi escolhido por oferecer uma grande liberdade de escolha de alvo de acordo com a aplicação, porque dispõe de técnicas de treinamento inteligente e por oferecer algoritmos rápidos e de baixo custo computacional para a detecção em tempo real do alvo. Além disso, o detector Haar oferece uma grande robustez ao detector de alvo, pois o mesmo pode ser treinado para detectar alvos em condições mais adversas como: baixa iluminação e oclusão parcial do alvo. A maior problemática enfrentada no desenvolver do trabalho é a limitação presente no controle servo visual que reside no fato de que a câmera escolhida para ser utilizada no robô é fixa. A escolha de uma câmera fixa representa uma simplificação na utilização de atuadores para o sistema e, ao mesmo tempo, adiciona uma problemática na tarefa de seguir o alvo planar considerando as restrições de deslocamento lateral do robô. Sendo assim, no desenvolvimento do esquema de controle, o controlador além de considerar a problemática de restrição na movimentação do robô deve também considerar o problema de ter um campo de visão restrito pela câmera fixa.. 2.1. Contextualização do trabalho. Neste trabalho serão abordados a técnica utilizada para realizar a identificação do alvo, a técnica de estimativa do posicionamento e da orientação do alvo e o algoritmo de controle proposto para realizar a perseguição do alvo planar. Durante todo o desenvolvimento e implementação das técnicas impostas ao sistema, considerou-se que não existem obstáculos dentro da área de atuação do robô e de seu alvo, pois a detecção e o planejamento de caminhos em ambientes povoados por obstáculos exigiria uma atuação muito mais complexa por parte do sub-sistema de controle, o que não é o foco deste trabalho. O robô escolhido como agente móvel para se desenvolver o trabalho é formado por.

(22) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 7. um chassi, e por duas rodas de acionamento diferencial, uma de cada lado do robô que podem ser acionadas de forma a garantir o movimento do mesmo através do espaço de trabalho. No robô considerado nas simulações existe uma terceira roda, do tipo rolamento omnidirecional que está localizada na frente do chassi, e serve como ponto de apoio para a sustentação do mesmo. Assume-se que o robô agente móvel possui uma única câmera de padrão RGB fixa como forma de identificar o alvo. Essa consideração é feita para evitar a inserção de mais atuadores no robô, pois é muito mais simples e comum se implementar um robô de câmera fixa do que adicionar um atuador a base da câmera.. 2.2. Delimitação do problema. O problema de perseguição de alvo discutido aqui leva em consideração que o mesmo pode se mover em qualquer direção e, portanto, não está sujeito a restrições não-holonômicas como o seu perseguidor. Resolveu-se deixar o alvo com o mínimo de restrições de movimentação para que o mesmo possa ser o mais genérico possível e, assim, haver a possibilidade de expandir o método desenvolvido aqui para a maior variedade de alvos diferentes como carros, pessoas, ou mesmo outros robôs. Deixar o alvo totalmente livre para se mover pelo espaço deixaria em aberto muitas possibilidades de atuação que fariam com que o robô perseguidor não fosse capaz de executar sua tarefa primária, devido a suas restrições em movimentação lateral e suas restrições de visibilidade devido a câmera fixa. Optou-se por manter o alvo livre em sua movimentação porém com a ressalva que que o mesmo tenda a realizar movimentos na direção a qual o mesmo está orientado. Outra limitação é que o alvo só pode se mover num plano bidimensional, dessa forma, casos envolvendo desníveis devem ser simplificados para o caso planar.. 2.3. Controle baseado em visão. O trabalho desenvolvido aqui pertence à área de pesquisa conhecida como Robótica baseada em visão. O termo servo visual formaliza sistemas baseados em visão controlados via realimentação como sendo sistemas dinâmicos. Servo visual é a fusão dos resultados de diversas áreas relacionadas, incluindo processamento de imagem, cinemática de robô, teoria de controle e computação em tempo real. Esquemas de controle servo visuais propostos até o momento tem sido classificados em três diferentes categorias: baseados.

(23) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 8. em posição, baseados em imagem ou híbridos. Cada um dos tipos de esquema tem suas vantagens e desvantagens, como pode ser visto em [Hashimoto 1993] e [Kragic et al. 2002]. Esquemas servo visuais baseados em posição, também conhecidos como servo visual 3D, definem sua entrada de referência como sendo a posição relativa e a orientação do objeto e do robô. A posição e orientação são obtidos à partir das imagens obtidas pela câmera montada no robô. Como o problema de controle do robô em si é clássico e bem estabelecido, o principal tópico de pesquisa nesse caso é robustez e velocidade na determinação da posição de objetos. Esquemas servo visuais baseados em imagem, também conhecidos como servo visual 2D, definem o sinal de referência no plano imagem. Geralmente, características dos objetos são extraídas da imagem para comprimir a informação. Dessa forma, esquemas baseados em imagem são também chamados esquemas baseados em característica (feature-based schemes). A diferença entre as características atuais da imagem e as características de referência é calculada e o robô é guiado pelo erro de características. Este esquema é dito como sendo robusto por diversos motivos. A abordagem servo visual híbrida apresenta características tanto dos esquemas servo visuais baseados em imagem, quanto dos esquemas servo visuais baseados em posição. Esse tipo de abordagem pode apresentar vantagens e desvantagens que existem nos outros esquemas conhecidos. Inicialmente pensou-se em utilizar no desenvolver desse trabalho um esquema servo visual baseado em imagem para realizar o controle do robô diretamente através da imagem do alvo obtida pela câmera, devido a sua robustez. Porém, por fim, o esquema servo visual baseado em posição foi escolhido para a aplicação devido a sua versatilidade em se trabalhar com diferentes tipos de controladores diferentes.. 2.4. Apresentação dos métodos utilizados. Nesta seção será feita uma breve revisão dos métodos escolhidos e dos métodos desenvolvidos que são utilizados em cada etapa do desenvolvimento do projeto. Até então foram implementados e testados o método de detecção de alvo baseado no algoritmo de detecção rápida de Viola & Jones, os métodos de estimativa de posição e orientação para o alvo, baseados nas características extraídas da imagem da câmera, bem como os algoritmos de controle: um algoritmo PID para comparação e o algoritmo baseado em geração de caminhos, proposto..

(24) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 2.4.1. 9. Haar Features. Features representam as características de uma imagem e podem ser determinadas de diferentes formas e segundo as mais distintas estratégias de extração, um tipo de features bastante utilizada em trabalhos envolvendo a detecção de padrões e texturas são as features Haar, que podem ser visualizadas na Figura 2.1, elas são compostas de várias áreas de preto e branco combinadas de uma forma em que os valores de intensidade nos pixels nas áreas de diferentes tonalidades são acumuladas de forma separada. Então o valor para a característica de imagem é calculado através de uma combinação ponderada dessas duas somas. Quando uma certa região de interesse é selecionada, as features Haar são geradas selecionando-se um tipo de padrões básicos, escalonando a imagem em altura e largura, e mudando a localização do padrão em relação à janela de detecção.. Figura 2.1: Alguns exemplos de features Haar utilizadas para detecção de padrões e texturas em imagens. (1) Feature de aresta vertical. (2) Feature de aresta horizontal. (3) Feature de linha vertical. (4) Feature de linha diagonal. Durante o processo de treinamento, muitos seletores são deliberados, entre os quais a melhor feature é selecionada para descrever determinada região do objeto segundo seus próprios conjuntos de características. Essas features são utilizadas para avaliar o nível de confiança dos outros trechos. De fato, qualquer uma das features corresponde a um classificador fraco e o seletor de features é o melhor classificador fraco no qual constará o menor erro em seu conjunto de características, este é o principio do algoritmo AdaBoost idealizado em [Freund & Schapire 1997]. Finalmente teremos que o classificador forte, que se trata da combinação linear entre os melhores seletores fracos de features. Esse processo de escolha do melhor classificador é detalhado melhor na seção seguinte.. 2.4.2. Classificadores em cascata. O algoritmo de detecção de alvo escolhido para o sistema é baseado no método de classificação em cascata. Um classificador em cascata consiste de uma sequência de estágios, onde cada um deles consiste de um conjunto de aprendizes fracos (weak learners)..

(25) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 10. O sistema detecta objetos desejados movendo uma janela de detecção sobre a imagem. Uma determinada região específica definida pela localização atual da janela é rotulada por cada estágio do classificador como positiva ou negativa, positiva significa que o objeto foi encontrado e negativa significa que o objeto não foi encontrado na imagem. Um classificador eficiente é criado combinando-se um pequeno número de features, assim, para saber quais features do conjunto total irão melhor descrever um certo tipo de objeto uma abordagem baseada em aprendizes fracos é utilizada. Para cada feature, o aprendiz fraco determina a função de classificação com limiar ótimo, tal que o número mínimo de exemplos possível seja mal classificado. Um classificador fraco h j (x), para cada imagem em subpixel x, consiste de uma feature f j , um limiar θ j e uma paridade p j , e é definido de acordo com  1 se p f (x) < p θ j j j j h j (x) = 0 caso contrário.. (2.1). Cada estágio do classificador em cascata consiste de um treinamento de classificadores baseados no algoritmo Adaboost [Freund & Schapire 1997], que seleciona a melhor feature para classificar uma imagem em cada estágio. O princípio do algoritmo Adaboost é descrito a seguir, onde dadas imagens exemplo (x1 , y1 ), . . . , (xn , yn ), alguns pesos são inicializados da forma apresentada em w1,i =. 1 2m. (2.2). para yi = 0 e. 1 (2.3) 2l para yi = 1. De onde m e l são o número de amostras de imagens positivas e negativas. Imagens positivas, como já foi dito anteriormente, são aquelas que contém o alvo e imagens negativas aquelas que não o contém. Então, dentro de um laço para t, os pesos precisam ser normalizados de acordo com w1,i =. wt,i ←. wt,i n. (2.4). ∑ wt,k k=1. que é definido segundo uma função de probabilidade. Para cada feature j, um classificador h j precisa ser treinado restritivamente utilizando apenas uma única feature. Assim, o classificador, ht , que apresentar o menor erro εt é determinado de acordo.

(26) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 11. com ε j = ∑ wi |h j (xi ) − yi |. (2.5). i. e é utilizado para atualizar os pesos. Os pesos são atualizados de acordo com wt+1,i = wt,i βt1−ei. (2.6). onde ei = 0 caso a imagem exemplo xi seja classificada corretamente e ei = 1 caso conεt . trário, nesse caso βt = 1−ε t O classificador forte final é então definido de acordo com      T T  1 se ∑ log 1 ht (x) ≥ 1 ∑ log 1 2 βt βt t=1 t=1 (2.7) h(x) =  0 caso contrário. No fim do processo cada estágio do detector em cascata terá selecionado uma das features em potencial para representar as amostras de imagem de entrada. Um diagrama representando de forma visual o algoritmo descrito aqui pode ser visto no Apêndice A. O modelo geral do processo de detecção tem a forma de uma árvore de decisões como descrito na Figura 2.2. No processo em cascata de rotulagem de janelas, se a rotulagem leva a um resultado negativo, então a classificação desta região em específico é dada como completa e a localização da janela é então movida para a próxima posição. Se a rotulagem retorna um valor positivo, então a região se move para o próximo estágio de classificação. Um positivo verdadeiro significa que o objeto em questão está de fato na imagem e o classificador rotulou a mesma como tal. Um falso positivo significa que o processo de rotulagem determinou falsamente que o objeto está localizado na imagem, entretanto o mesmo não se encontra nela. Um falso negativo ocorre quando o classificador é incapaz de detectar a presença do objeto na imagem e um negativo verdadeiro significa que uma imagem que não possui o objeto foi corretamente classificada como não sendo o objeto em questão..

(27) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 12. Figura 2.2: Esquemático descrevendo um detector em cascata. Cada sub-janela passa por uma série de classificadores caso o resultado do anterior seja positivo (V) e é descartada em caso de resultado de classificação negativo (F). Se o primeiro classificador produzir um resultado positivo então o segundo classificador será ativado, o mesmo deve ser ajustado para obter altas taxas de detecção. Um resultado positivo vindo do segundo classificador habilita um terceiro classificador, e assim por diante. Um resultado negativo em qualquer ponto leva a imediata rejeição da sub-janela. Classificadores simples são usados para rejeitar a maioria das sub-janelas antes de classificadores mais complexos no intuito de se obter taxas de falsos positivos cada vez menores.. 2.4.3. Estimativas de posição e orientação. O classificador em cascata é utilizado no trabalho apenas como forma de detecção do alvo que o agente móvel deve seguir. Para determinar a posição e orientação desse alvo foram propostas técnicas de estimativa, baseadas no que é descrito no trabalho [Basit et al. 2015] e nas técnicas já conhecidas de modelagem de câmera, apresentadas em [Trucco & Verri 1998] e [Ballard & Brown 1982].. 2.4.4. Abordagem de controle. Uma extensa pesquisa a respeito de estratégias utilizadas para realizar o controle de um agente móvel em direção a um alvo em movimento foi realizada, e trabalhos como [Medina-Garciadiego & Leonessa 2011], [Wai & Lin 2013], [Ito et al. 2012] e [Yoshimi et al. 2006] foram encontrados com perspectivas semelhantes ao que se deseja desenvolver aqui. Deseja-se desenvolver um sistema de controle para realizar a perseguição do alvo.

(28) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 13. desejado de forma que o mesmo sempre esteja à vista do sensor de câmera e possa ser identificado pelo detector. No início pensou-se em começar a abordagem com estratégias de controle simples para tentar desenvolver o sistema de controle, ao contrário da maioria dos trabalhos existentes na literatura. Decidiu-se então seguir estratégias mais simples parecidas com os trabalhos [Maya-Mendez et al. 2006] e [Frederico C. VIEIRA 2004], e utilizar estratégias como as propostas em [Rafael Murrieta-Cid 2005] e [LaValle et al. 1997], para manter as restrições de visibilidade do alvo. O problema de manter a visibilidade do alvo, considerando o fato de que o robô possui restrições em sua movimentação lateral, é uma tarefa que oferece certo grau de complexidade. Para tentar contornar esse problema pensou-se em utilizar uma estratégia de controle que envolva a geração de curvas que representem caminhos ideais para o robô dada uma determinada posição e orientação do alvo, considerando também as restrições da câmera. Para que o algoritmo de controle proposto pudesse funcionar, o mesmo teve que ser incluído em um problema de perseguição de trajetória, o robô deve alterar sua velocidade de acordo com o movimento relativo do alvo, de forma a se manter sempre em perseguição. Nesse trabalho não foi considerada nenhuma técnica para estimativa da velocidade do alvo.. 2.5. Revisão do softwares utilizados. As simulações relacionadas com o funcionamento físico e algorítmico do sistema proposto aqui foram realizadas no ambiente de simulação V-REP, desenvolvido pela Coppelia Robotics T M [E. Rohmer 2013], em conjunto com o ambiente computacional de programação MATLAB T M , utilizando o pacote de ferramentas Computer Vision System Toolbox [Computer Vision System Toolbox User’s Guide: For Use with MATLAB;[user’s Guide] 2016], bem como a biblioteca de desenvolvimento de software relacionada com visão computacional o OpenCV [Bradski n.d.]. O V-REP providencia uma quantidade enorme de ferramentas para realizar simulações físicas de sistemas dinâmicos e possui integração com a maioria das linguagens de computação, sendo assim muito bem qualificado para realizar as simulações físicas do sistema. O MATLAB é uma poderosa plataforma computacional com bibliotecas es extensões disponíveis para se realizar incontáveis tipos de atividades, inclusive quando se trata de seu uso em sistemas robóticos. O OpenCV é uma biblioteca aberta disponível nas linguagens Python e C++ repleta de métodos e ferramentas direcionadas a área de visão computacional e processamento de imagem..

(29) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 2.5.1. 14. Coppelia Robotics V-REP. O simulador de sistemas robóticos V-REP, desenvolvido pela Coppelia Robotics e contando com ambiente de desenvolvimento integrado, é baseado numa arquitetura de controle distribuída onde cada objeto/modelo pode ser individualmente controlado por uma rotina de código embarcada, um plugin, um nó em ROS, um cliente numa API remota, ou uma solução customizada. Isso torna o V-REP extremamente versátil e ideal para aplicações multi-robô. Controladores podem ser escritos em diversas linguagens de programação como C/C++, Python, Java, Lua, MATLAB, Octave ou Ubi. V-REP é constantemente utilizado para desenvolvimento rápido de algoritmos, simulações de sistemas de automação industrial, prototipagem rápida e verificação, robótica educativa, monitoramento remoto, segurança, entre outros. O ambiente de simulação oferece ferramentes para os mais variados cenários, entre simulação dinâmica, cinética, cinemática, planejamento de caminhos, cálculo de mínima distância, detecção de colisões, sensores de visão, processamento de imagem, sensores de proximidade, entre outros. Para tanto são embutidos no ambiente 4 motores físicos (Bullet Physics, ODE, Vortex Dynamics e Newton Dynamics) para cálculos rápidos e customizáveis de sistemas dinâmicos e simulação precisas de interações entre objetos semelhantes ao mundo real. O ambiente conta com modelos para o cálculo de cinemática direta e inversa para qualquer tipo de mecanismo: ramificado, fechado, redundante, contendo laços aninhados, entre outros. O software foi utilizado no presente trabalho para realizar as simulações físicas dos modelos movimentação do agente móvel e do alvo. Mais informações estão disponíveis em: http://www.coppeliarobotics.com/. 2.5.2. MATLAB. Trata-se de um software interativo de alta performance voltado para o cálculo numérico. O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em um ambiente fácil de usar, onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional. A plataforma MATLAB é otimizada para a resolução de problemas científicos e de engenharia. A linguagem baseada em matriz, típica do MATLAB, facilita a forma de manipulação e interação com os dados, otimizando assim o trabalho. As bibliotecas gráficas.

(30) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 15. pre carregadas tornam a visualização dos dados mais acessível principalmente em trabalhos que exigem manipulação gráfica ou processamento de imagens. Esses e outros motivos foram levados em consideração na hora de se escolher o MATLAB para realizar os testes e análises iniciais das primeiras etapas do sistema, além, claro da sua fácil integração com o ambiente de simulação física o V-REP. O MATLAB foi utilizado na implementação dos algoritmos de controle e durante a etapa de treinamento do detector em cascata de características Haar, pois, sua biblioteca de visão computacional já possui diversas rotinas pre-instaladas que facilitam o treinamento e a manipulação desse tipo de detector. Devido às suas limitações em velocidade o MATLAB não é muito indicado para versões finais de projetos, pensa-se em utilizá-lo durante a etapa de prototipagem do sistema e em algumas análises, porém, os algoritmos de controle e de detecção e processamento de imagens seriam implementados em outra linguagem de programação computacionalmente mais eficiente como Python ou C/C++, na hipótese de uma possível implementação física do sistema. Mais informações estão disponíveis em: http://www.mathworks.com/. 2.5.3. OpenCV. OpenCV (Open Source Computer Vision Library) é uma biblioteca de software de visão computacional e aprendizado de máquina de código aberto. Ela foi construída para prover uma infraestrutura comum para aplicações envolvendo visão computacional e para acelerar a utilização de percepção de máquina em produtos comerciais. Sendo um produto com licença BSD, o OpenCV torna fácil a a utilização e modificação do código. A biblioteca possui mais de 2500 algoritmos optimizados, o que inclui um compreensivo conjunto tanto de algoritmos clássicos quanto de última geração para visão computacional e aprendizado de máquina. Esses algoritmos podem ser utilizados para detectar e reconhecer faces, identificar objetos, classificar ações humanas em vídeos, rastrear movimentos de câmera, rastrear movimento de objetos, extrair modelos tridimensionais de objetos, produzir nuvens de pontos 3D de câmeras estereoscópicas, agrupar imagens de forma a formar uma imagem de alta resolução de uma cena, encontrar imagens similares em um banco de dados, remoção de olhos vermelhos resultado do uso de flash, seguir movimento dos olhos, reconhecimento de cenários e estabelecimento de marcações para.

(31) CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA. 16. o uso de realidade virtual. É mais do que qualificado para ser utilizado no contexto do trabalho apresentado neste documento. A biblioteca opera nas interfaces com C++, C, Python e MATLAB e suporta Windows, Linux, Android e MAC OS. OpenCV é indicado para uso em aplicações de visão em tempo real e pode utilizar instruções MMX e SSE quando disponíveis. Interfaces em OpenCL e CUDA repletas de funções estão em desenvolvimento ativo atualmente. OpenCV é uma biblioteca escrita nativamente em C++ e possui interfaces em template que funcionam em containers STL. A biblioteca foi utilizada nos testes dos sistemas de estimativa de posição e orientação do alvo. Mais informações estão disponíveis em: urlhttp://opencv.org/.

(32) Capítulo 3 METODOLOGIA DE PESQUISA. Neste trabalho é proposta uma nova forma de protótipo de uma unidade robótica agente móvel terrestre dotada de limitações laterais de movimentação, capaz de identificar um determinado alvo a sua frente por meio de uma única câmera de padrão RGB comum, montada de forma fixa sobre o chassi do robô, e de determinar a posição desse alvo e de executar um algoritmo de controle inteligente de forma a realizar a perseguição do alvo pelo ambiente terrestre livre de obstáculos, apesar de suas restrições de movimentação. Nesse capítulo serão apresentados os métodos escolhidos ou propostos para resolver cada etapa da implementação do sistema, cada um procurando abordar os problemas impostos da forma mais simples possível com relação à implementação, para que se possa obter um produto final que não seja custoso computacionalmente nem financeiramente.. 3.1. Forma de abordagem ao problema. A metodologia de abordagem dos problemas enfrentados no desenvolvimento do sistema é baseada na busca do estado da arte disponível de técnicas que ofereçam uma possível solução para cada um dos problemas presentes nos estágios de elaboração do projeto. A análise da viabilidade da aplicação de tais técnicas no escopo do sistema desenvolvido e a modificação e adequação das mesmas, quando necessário, para se encaixarem melhor nesse escopo também fazem parte do projeto. Foram realizados diversos estudos de simulação de cada estágio do sistema, realizando-se a análise do desempenho e das limitações do sistema como um todo a fim de se julgar a viabilidade do mesmo..

(33) CAPÍTULO 3. METODOLOGIA DE PESQUISA. 3.2. 18. Descrição das técnicas escolhidas. À seguir são realizadas descrições detalhadas de todas as técnicas escolhidas ou desenvolvidas no decorrer do trabalho. Basicamente o trabalho é compostos dos seguintes subsistemas: subsistema de detecção de alvo, subsistema de estimativa de posição, subsistema de estimativa de orientação e subsistema de controle. A união desses subsistemas formam o sistema de identificação e perseguição de alvo como um todo. O subsistema de estimativa de posição e o subsistema de estimativa de orientação por vezes são agrupados e referenciados como subsistema de estimativa de configuração, visto que o funcionamento de ambos está atrelado.. 3.2.1. Notação matemática. Antes de mais nada é importante definir alguns termos utilizados na explicação do trabalho que se segue. Um sistema referencial de coordenadas 2D ou 3D será representado por uma letra estilizada em maiúsculo como em F . Um subíndice pode ser utilizado em conjunto com a notação para indicar que a variável em questão corresponde a um determinado item; como em Fc que indica o referencial de coordenadas de câmera, especificamente. Um ponto em um referencial de coordenadas 2D ou 3D será denotado em negrito como em P e pode ou não ter um subíndice para indicar um ponto pertencente a um item em específico. A notação utilizada aqui define que pontos em referenciais de três dimensões, como o referencial de mundo, serão representados em maiúsculo e pontos de referenciais bidimensionais, como o referencial da imagem de câmera, estarão em minúsculo. Matrizes e vetores serão também representados em negrito porém suas dimensões serão sempre especificadas logo em seguida para evitar enganos entre esses e os pontos. Escalares serão denotados de forma padrão, como em f . Estimativas de parâmetros serão denotadas utilizando til, por exemplo, a estimativa de x será x. ˜ Da mesma forma, valores desejados para uma determinada variável temporal serão denotados utilizando acento circunflexo, assim, a variável x(t) ˆ denota um valor desejado.. 3.2.2. Descrição dos referenciais. Para iniciar a modelagem do robô móvel considera-se primeiramente a configuração da Figura 3.1, nela é descrito o referencial de coordenadas 2D associado ao robô terrestre, Fr . A partir desse referencial, em dada situação no tempo as configurações do robô são descritas por qr (t) = [xr (t), yr (t), θr (t)] no referencial de mundo, onde θr (t) representa o ângulo em que o eixo Xr do robô faz com o eixo Xw do referencial estático de mundo. O.

(34) CAPÍTULO 3. METODOLOGIA DE PESQUISA. 19. referencial de mundo pode ser definido a critério do projetista. O sensor de visão estará posicionado segundo o referencial Fc . Já que o sensor de visão não tem liberdade de movimento translacional ou rotacional relativo à base do robô Fc é considerado constante em relação ao referencial Fr . Em dado momento, como forma de reduzir as perdas de visada do alvo, iremos considerar que a origem do referencial de câmera coincide com o referencial do robô, porém está rotacionado.. Figura 3.1: Configuração de modelagem do robô móvel terrestre no espaço de trabalho bidimensional. O referencial Fa está associado ao alvo ao qual deseja-se seguir, onde qa (t) = [xa (t), ya (t), θa (t)] representa uma determinada configuração no tempo em referencial de mundo, a qual descreve a postura do alvo. O referencial Fc possui três eixos de coordenadas Xc , Yc e Zc sobre o qual é feita toda a modelagem do mapeamento dos pontos do mundo real em coordenadas de mundo e dos pontos em coordenadas de imagem. Durante o desenvolver dos métodos será sempre considerado que Zc é o eixo de profundidade visto pela câmera..

Referências

Documentos relacionados

Não tentarei sintetizar a interpretação de Armindo de Sousa sobre o parlamento medieval, dado que as suas propostas mais fraturantes foram já evidenciadas, de forma incisiva, por

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

F REQUÊNCIAS PRÓPRIAS E MODOS DE VIBRAÇÃO ( MÉTODO ANALÍTICO ) ... O RIENTAÇÃO PELAS EQUAÇÕES DE PROPAGAÇÃO DE VIBRAÇÕES ... P REVISÃO DOS VALORES MÁXIMOS DE PPV ...

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

O pastor Felipe Silva de Oliveira da Terceira Igreja Batista em Jardim Bom Retiro (São Gonçalo/RJ), é convidado para apresentar uma reflexão bíblica baseada na