Nome do Projeto
Estudo do ambiente de aprendizagem formado por redes neurais artificiais e Lego NXT Brick
Ênfase
ENSINO
Data inicial - Data final
01/03/2016 - 28/02/2018
Unidade de Origem
Área CNPq
Engenharias - Engenharia Elétrica - Controle de Processos Eletrônicos, Retroalimentação
Resumo
O avanço tecnológico é notório no cotidiano da população, seja por smartphones, notebooks, video games ou pela inserção de robôs na execução de tarefas perigosas, insalubres ou de difícil acesso. As Redes Neurais Artificiais (RNA’s) podem ser utilizadas na programação desses robôs e pela sua vasta aplicação são utilizadas nas mais diversas áreas. 1.1 Redes Neurais Artificiais (RNA’s) e a plataforma Lego Mindstorms NXT RODRIGUES (2009) utilizou RNA’s como identificador neural de comandos vocais para o acionamento sem fio de um robô Lego Mindstormss NXT. Segundo o autor a identificação de comandos vocais é complexa devido as grandes variações no modo de fala do locutor, os comandos testados foram frente, ré, direita, esquerda e pare. O processo foi dividido em três etapas: coleta de dados sonoros utilizando um microfone, processamento dos dados utilizando duas técnicas de análise espectral (Linear Predictive Coding (LPC) e a Transformada Discreta de Fourier (TDF)) e identificação do comando vocal, realizado pela RNA. A rede desenvolvida neste trabalho é uma rede de múltiplas camadas com 31 neurônios na entrada, que são os padrões gerados a partir do comando vocal. A taxa de acerto para implementação do sistema neural para reconhecimento de voz ficou entre 80 e 90%. VLIST et al. (2008) realizaram um projeto com o intuito de ensinar linguagem de máquina a alunos que não estão habituados com este tipo de tecnologia, para tanto foi utilizado com sucesso o método Embodied Intelligence. Para proporcionar ao aluno a interação com o sistema de aprendizagem foi utilizada a plataforma Lego Mindstorms NXT. O curso teve como objetivo ensinar princípios básicos do aprendizado por reforço e aprendizado supervisionado. Foram selecionados como exemplos básicos o algoritmo Q-learning e as Redes Neurais, ambos incorporados à plataforma de prototipagem Lego Mindstorms que é excelente na criação de inteligência embarcada. O programa de aprendizagem recebe em sua entrada dados vindos diretamente dos sensores que respondem a estímulos do mundo real. Foram realizados dois estudos de caso, o primeiro foi o aprendizado por reforço com dois robôs: o Crawler (Figura 1) e o Johnny Q (Figura 2). Crawler é um robô montado com blocos NXT sobre rodas, com um braço e dois motores formando o rastreador. O NXT Brick foi programado em Java para executar o algoritmo de aprendizagem por reforço (Q-Learning). Segundo a arquitetura implementada no robô, este é recompensado positivamente ao se mover para frente e negativamente ao se mover para trás, explora-se assim suas habilidades para aumentar o aprendizado de modo que acumule a recompensa máxima. Inicialmente o movimento do robô parece aleatório até ele encontrar um ritmo que lhe permita mover o braço e, assim, o movimento ocorre para frente de forma eficiente. Figura 1: Robô Crawler (VLIST et al., 2008)) Figura 2: Robô Johnny Q (VLIST et al., 2008)) O robô Johnny Q foi construído por diferentes alunos, é constituído de rodas e motores para mover-se para frente, para trás, girar à esquerda e à direita. Possui sensores que medem a quantidade luz refletida pelo piso e que determinam a distância de um objeto, parede ou referência. O processador do NXT Brick executa o algoritmo de aprendizagem por reforço (Q-learning) programado em Java. A recompensa é feita no ombro, através de um simples botão que conta o número de toques. Johnny Q aprende através da recompensa dada pelo usuário humano durante o treino, ou seja, é semelhante a treinar um cão. Q-learning é um algoritmo de aprendizado por reforço, e aprendizagem por reforço é um método que permite a uma máquina aprender através de recompensas e punições. O comportamento da máquina é dado em termos de uma estratégia ou política, que determina a probabilidade de que a máquina irá tomar certa ação em um determinado estado. Uma questão importante é saber se a máquina deve explorar seu conhecimento e escolher as ações que levam à maior recompensa ou se deveria explorar novas ações, em determinados estados, para descobrir melhores maneiras de recuperar ainda mais recompensas. Q-learning requer um conjunto finito de estados do ambiente, um conjunto fixo de ações e uma função de recompensa. O segundo estudo de caso foi baseado na aprendizagem supervisionada. Foram utilizados o NXT Brick e seu microfone para gravar palavras, que então foram transferidas através de uma conexão Bluetooth a um microcomputador. Os alunos aplicaram RNA’s no reconhecimento da fala, as amostras de som foram utilizadas como dados de entrada da rede, que foi criada usando o pacote Joone (Java Object Oriented Neural Engine), que permite construir, treinar e testar redes neurais. O resultado obtido na saída da rede foi enviado de volta para o NXT e mostrado no display do Brick. O objetivo de implementar a rede neural utilizando somente o NXT, sem depender de um microcomputador para o seu funcionamento não foi atingido por VLIST et al. (2008). Isso ocorreu devido à necessidade de um profundo conhecimento sobre a linguagem Java, o que desviaria a atenção do objetivo principal que eram as redes neurais. O reconhecimento de padrões em geral é o objetivo quando se deseja classificar dados padrões extraídos de dados brutos. As RNA’s são uma ferramenta muito poderosa para reconhecer classes de padrões onde os dados brutos apresentam pequena variação ou quando as características exatas não são conhecidas. Em muitos casos a utilização de informações estatísticas sobre os padrões ou funções matemáticas lineares podem fazer isso. Quando ambos, os dados e a segmentação dos diferentes padrões se tornam mais complexos, as redes neurais são a ferramenta adequada para a execução da tarefa de reconhecimento de padrões (VLIST et al., 2008). As redes neurais no cérebro humano, por exemplo, consistem de neurônios interligados por meio de sinapses, formando uma rede complexa. As redes neurais artificiais possuem camadas de neurônios. Uma rede neural simples tem pelo menos uma camada de entrada, uma camada de saída e ao menos uma camada oculta. Todos os neurônios em uma camada estão interligados através de sinapses com a próxima camada de neurônios. As sinapses funcionam como um fator peso e os neurônios funcionam como uma função matemática. A entrada que alimentada à rede neural é multiplicada pelo peso das sinapses. Os neurônios na camada seguinte aplicam uma função matemática, por exemplo, uma função sigmoide para a soma de todos os valores de entrada multiplicados pelos seus pesos. Esse processo se repete até que os neurônios de saída adquiram um determinado valor. A saída responderá com valores que representam um padrão específico, isso ocorre quando os fatores de ponderação estão corretos (VLIST et al., 2008). Uma forma comum de se treinar uma rede neural é por meio da retropropagação do erro. Retropropagação é um método de aprendizagem supervisionada, o que significa que um conjunto de valores de entrada acoplada à saída desejada são usados para treinar a rede. O algoritmo de retropropagação calcula o sinal de erro, comparando os resultados atuais, com a saída desejada. Em seguida, utiliza o sinal de erro para atualizar os pesos. A rede é treinada ao se repetir este processo iterativo até que a saída real se aproxima da saída desejada (VLIST et al., 2008). GRANDI et al. (2014) desenvolveram um projeto com o objetivo de conduzir os alunos a adquirirem prática e conhecimento em robótica móvel e também para ensiná-los sobre como escrever códigos destinados ao controle de máquinas automáticas e robôs em tempo real. Foi utilizado o kit Lego Mindstorms devido ao seu baixo custo, modularidade e facilidade de criação de vários tipos de dispositivos. A respeito do software foi utilizada a linguagem orientada ao objeto, Java com firmware open source leJOS (http://www.leJOS.org/). O NXT-G é a interface padrão para programação dos kits Lego Mindstorms. Desenvolvido pela National Instruments, baseia-se na filosofia de programação visual, explorando uma interface semelhante à de softwares científicos como o Matlab/Simulink e o LabVIEW. Entretanto esta interface não é adequada para o ensino de técnicas de programação de alto nível, pois muitos detalhes técnicos ficam ocultos por blocos gráficos e as opções para o programador são muito limitadas. Existem outras ferramentas que servem como alternativa ao NXT-G e que se baseiam nas linguagens C/C++ ou Java, Visual Basic, entre outras. Para algumas delas é necessário substituir a versão original do firmware do NXT Brick de modo a possibilitar o uso das mesmas. O firmware leJOS permite a integração com as ferramentas de ambiente de desenvolvimento integrado (IDE) mais comuns, podendo ser usado não somente para o controle de um robô, mas para o controle de sistemas multi-robôs controlados de forma remota. Embora uma parte dos pacotes inclusos em leJOS sejam derivados do Java ME, uma versão de Java normalmente usada em dispositivos móveis, uma outra parte, denominada robotics packages, está em desenvolvimento para esta plataforma. Um dos principais objetivos foi ensinar os alunos a escreverem corretamente programas de forma modular, melhorando a compreensão do código e também facilitando a escrita do mesmo para cada tipo de comportamento do robô. (GRANDI et al., 2014) SILVA et al. (2012) apresentam um comparação das diferentes arquiteturas de redes neurais artificiais aplicadas ao controle de navegação de um robô seguidor de linha. O dispositivo de navegação autônoma foi construído com o kit Lego Mindstorms NXT. Os sinais dos sensores de luz do robô foram considerados como às entradas da rede e as saídas da RNA foram diretamente repassadas aos motores, garantindo a permanência do robô em sua trajetória sobre uma linha. Foram utilizadas as redes Perceptron Múltiplas Camadas (PMC), com treinamento realizado de forma supervisionada, a PMC com entradas atrasadas no tempo e a PMC com saídas recorrentes às entradas. Uma rede neural normalmente utilizada para realizar processamento temporal é a Time Delay Neural Network (TDNN), que utiliza a arquitetura PMC, e possui a característica de predizer os valores posteriores utilizando as entradas anteriores apresentadas à rede. A estrutura PMC com saídas recorrentes às entradas é conhecida como Nonlinear Auto-Regressive with Exogenous Inputs (NARX), suas respostas são atrasadas de uma unidade de tempo e posteriormente reapresentadas as entradas, produzindo uma melhor resposta de generalização da rede. Segundo os autores as redes com atraso, devido a sua característica de gravar a tendência do percurso, retomaram a direção do robô aplicando sinais menos oscilatórios. As redes com recorrência executaram o percurso com velocidade 30% maior, mas com sinais de controle mais oscilatórios e sem uma generalização com relação ao sentido contrário ao sentido treinado. 1.2 Redes Neurais Artificiais (RNA’s) e o Controle de Veículos Aéreos Não Tripulados (VANT’s) No trabalho de DIERKS & JAGANNATHAN (2010) um controlador não linear para um veículo aéreo não tripulado, VANT quadrotor (Unmanned Aerial Vehicle, UAV) foi proposto. Para tanto, foram utilizadas redes neurais e a realimentação da saída. Como a dinâmica do UAV nem sempre é conhecida na prática, especialmente em um ambiente ao ar livre, foi introduzida uma RNA para aprender a dinâmica completa do UAV on-line, incluindo os termos das incertezas não lineares como o atrito aerodinâmico e o movimento das hélices (blade flapping). Um observador neural foi utilizado para estimar as velocidades angular e translacional do UAV e um controle com realimentação da saída foi desenvolvido considerando apenas a posição e a orientação (onboard Attitude Heading Reference System, AHRS. Giroscópios, acelerômetros e magnetômetros em três eixos – Sistema de referência de orientação) do UAV como variáveis mensuráveis. O quadrotor é um sistema com seis graus de liberdade e apenas quatro rotores fixos que permitem atuação: • Arfagem θ (em inglês - Pitch) : momento no eixo Y; • Rolagem φ (em inglês - Roll): momento no eixo X; • Guinada ψ (em inglês - Yaw): momento no eixo Z; • Altitude z : movimento no eixo Z. Para resolver o problema de rastreamento de referência e controle do UAV quadrotor muitas técnicas têm sido propostas: Nonlinear Backstepping e controle com estrutura variável e modos deslizantes, Robust Feedback Linearization and H∞ Controller, PID e LQ control (Linear Quadratic Optimal Control). No entanto, todas estas técnicas utilizam o modelo dinâmico do processo para o controle o que requer precisão na obtenção do modelo dinâmico (BOUDJEDIR et. al, 2012). Um método popular para o tratamento de não linearidades desconhecidos baseia-se na introdução de redes neurais, sintonizadas de forma on-line utilizando técnicas adaptativas. Vários projetos de redes neurais adaptativas têm sido propostas para o controle do quadrotor e podem ser vistos no trabalho de BOUDJEDIR et. al (2012). SANTOS & TASINAFFO (2009) apresentam um sistema de controle preditivo embutido no Sistema de Navegação e Controle (SNC) composto de rede neural feedforward, que possui a habilidade de aprender, com a precisão desejada, um mapeamento para modelar o sistema dinâmico. Por meio da utilização do integrador numérico Runge-Kutta foram gerados padrões de treinamento usando o modelo de equações diferenciais do sistema dinâmico da aeronave. Feito o treinamento da dinâmica do sistema o comportamento de uma aeronave enquanto segue uma trajetória de referência realizando um voo autônomo foi simulada. 1.3 Primeiro Contato com RNA’s Utilizando um Estudo de Caso com Dados Reais : Aplicação da Inteligência Artificial no Monitoramento do Processo de Incubação A dissertação de título "Aplicação da Inteligência Artificial no Monitoramento do Processo de Incubação" (Universidade Federal de Santa Catarina, 2005), apresentada por Julio Cesar Zanchet Piaia, apresenta um estudo sobre a aplicação de redes neurais artificiais (RNAs) como mecanismo para a estimativa de valores de eclodibilidade de ovos em um sistema de incubação artificial para a produção de frangos de corte. O autor também estabeleceu valores para a temperatura e a concentração molar de dióxido de carbono, necessários ao processo. Neste trabalho foi utilizada a arquitetura de RNA feedfoward (alimentada adiante) com uma camada oculta de neurônios. Esta camada oculta (grande característica da feedfoward) usa a habilidade dos neurônios (ocultos) de extraírem estatísticas de ordem elevada (identificar valores que descrevem aspectos importantes de um conjunto de dados) (HAYKIN, 2001, p. 47). Foi empregado o algoritmo de treinamento backpropagation (retropropagação de erro). Seu funcionamento é descrito por HAYKIN (2001, p. 183) da seguinte forma: basicamente, a aprendizagem por retropropagação de erro consiste de dois passos através das diferentes camadas da rede. Um passo para frente, a propagação, e um passo para trás, a retropropagação. No passo para frente, um padrão de atividade (vetor de entrada) é aplicado aos nós sensoriais da rede e seu efeito se propaga através da rede, camada por camada. Finalmente, um conjunto de saídas é produzido como a resposta real da rede. Durante o passo de propagação, os pesos sinápticos da rede são todos fixos. Durante o passo para trás, por outro lado, os pesos sinápticos são todos ajustados de acordo com uma regra de correção de erro. Especificamente, a resposta real da rede é subtraída de uma resposta desejada (alvo) para produzir um sinal de erro. Este sinal de erro é então propagado para trás através da rede, contra a direção das conexões sinápticas - vindo daí o nome de "retropropagação de erro" (error backpropagation). Os pesos sinápticos são ajustados para fazer com que a resposta real da rede se mova para mais perto da resposta desejada, em um sentido estatístico. O texto começa apresentando uma breve introdução sobre a avicultura industrial no Brasil e em vários outros países ao longo da história. Mostrando, de forma clara, a importante parcela que esta área ocupa na indústria, a necessidade de se investir em tecnologia e quão vantajosa é a utilização de redes neurais na avicultura moderna. Isso se dá devido ao grande número de propriedades que essa abordagem considera, como a não linearidade, a adaptabilidade, o mapeamento de entrada-saída e a tolerância a falhas (HAYKIN, 2001, p. 30). Após discorrer sobre a história da avicultura e sua importância nos dias de hoje o autor passa a explanar sobre os processos de pré-incubação e incubação, fazendo um passo a passo de cada etapa a que os ovos são submetidos, revelando inclusive os valores das variáveis. Os equipamentos de incubação (incubadora, câmara de eclosão, damper, serpentina, aquecedor, soprador, entre outros), os sistemas de controle para manter os ovos dentro de uma condição de conforto (controle de temperatura de bulbo seco, controle de temperatura de bulbo úmido, frequência de viragem dos ovos, entre outros) e os processos que influenciam na eclodibilidade dos ovos, foram estudados. O uso de redes neurais para a determinação da taxa de eclosão pode reduzir a porcentagem de erros e o tempo gasto na obtenção dos dados desejados. O sistema desenvolvido aplicando RNAs funciona se valendo de variáveis chave do processo colocadas na forma de matrizes. De uma maneira mais generalista e em termos de software, tratam-se de onze arquivos, sendo que 8 destes são arquivos de dados (.dat) e 3 são referentes a algoritmos escritos em linguagem de programação Matlab (.m), que devem ser executados um após o outro em uma sequência específica. Ao executar o primeiro algoritmo são importados dois arquivos de dados, um contendo os valores de entrada e outro contendo os valores de saída esperados. As instruções aplicam uma regra de escalonamento nos dados de entrada (x) e saída esperada (y), gerando dois novos arquivos x e y já escalonados. Este escalonamento é realizado com base na função de ativação escolhida para o projeto, que neste caso foi a tangente hiperbólica, que pode assumir tanto valores positivos como negativos (entre -1 e 1). Quanto à importância da escolha e do papel da função de ativação nos resultados do trabalho, no caso do uso de RNAs, HAYKIN (2001, p. 37) afirma que a função de ativação restringe a amplitude de saída de cada neurônio, limitando a amplitude do sinal de saída de cada neurônio a um valor finito. Ao executar o segundo algoritmo são importados os arquivos de dados gerados anteriormente e é realizado o treinamento da rede neural artificial, utilizando o número de máximo de épocas (máximo de vezes em que os valores são apresentados aos neurônios) e as taxas máximas de aumento e diminuição da aprendizagem (limites de valores correspondentes à velocidade máxima e mínima de aprendizagem), definidas previamente pelo autor. Com relação ao treinamento foi usada uma função específica para o treinamento de RNAs por backpropagation (Figura 3). Ao final da execução do algoritmo são mostrados alguns gráficos referentes à aprendizagem da rede neural e são gerados outros dois arquivos com os dados de saída da rede. Executando o terceiro arquivo no ambiente computacional Matlab, os arquivos gerados pelo algoritmo anterior são imediatamente importados e submetidos a uma série de funções para a realização da operação inversa de escalonamento. Finalmente é exportado um arquivo com os dados da previsão da taxa de eclosão. Figura 3: Ferramenta de treinamento da rede neural no Matlab (nntraintool). Arquitetura da rede. PIAIA (2005) obteve uma grande porcentagem de acerto na previsão dos dados de eclosão, o que destaca a enorme diferença de precisão do sistema por RNA em comparação ao método de previsão usualmente utilizado, o erro médio quadrático absoluto. Devido as constantes atualizações do software Matlab foi necessária à atualização do código desenvolvido por PIAIA (2005), substituindo as funções antigas e desatualizadas por novas funções, mas mantendo os mesmos parâmetros para se ter certeza de que os valores de saída seriam os mesmos. Ao término das alterações notou-se uma melhora no esforço computacional. Foi necessário realizar apenas 2% do número de épocas obtidas com o código anterior, para se obter o mesmo resultado final. Este estudo de caso foi escolhido pelo coordenador do presente projeto para a inserção dos autores no assunto RNAs. Após leitura criteriosa da obra do autor HAYKIN (2001), que serviu de inspiração cientifica e tecnológica, foi iniciado o trabalho de interpretação do trabalho desenvolvido por PIAIA (2005). A característica de previsão e estimação de dados utilizando redes neurais foi explorada com sucesso, com a obtenção de uma uniformização do vocabulário técnico e o levantamento das potencialidades das redes neurais utilizado para isso um sistema real.

Objetivo Geral

Produção de material didático, teórico e prático, para a disciplina de Inteligência Artificial de forma que esta atenda as demandas do curso de Engenharia de Controle e Automação.

Justificativa

Atualmente os alunos do curso de Engenharia de Controle e Automação/CEng/UFPel cursam a disciplina de Inteligência Artificial (51 ha) em conjunto com os alunos da Engenharia de Computação/CDTec/UFPel. Assim sendo, o professor regente segue a ementa constante no Projeto Pedagógico do curso de Engenharia de Computação (Inteligência Artificial I: 68 ha) uma vez que a mesma pertence à matriz curricular deste curso. Ao se comparar as ementas percebe-se que não há uma convergência clara de conteúdos exceto se o aluno cursar as duas disciplinas de Inteligência Artificial I e II totalizando uma carga horária de 136 há, contra as 51 ha previstas na matriz curricular da Engenharia de Controle e Automação. Isso ocorre por falta de professores com qualificação para ministrar a disciplina abordando exclusivamente aspectos de controle e automação.
O presente projeto representa o primeiro passo para a formação na Universidade Federal de Pelotas de mão de obra qualificada para a docência, com a colaboração acadêmica (formação de futuros monitores), da disciplina de Inteligência Artificial de forma que esta atenda as demandas do curso de Engenharia de Controle e Automação. Iniciam-se os trabalhos com um objetivo bastante claro, o de apresentar uma aplicação prática para as redes neurais, utilizando para tanto uma das ferramentas mais conhecidas mundialmente pela sua versatilidade no ensino de engenharia. O Lego Mindstoms Education 9797 servirá de plataforma para o desenvolvimento e aplicação de redes neurais vislumbrando-se o projeto de um veiculo aéreo não tripulado.
Ementa da Disciplina de Inteligência Artificial de Acordo com o Projeto Pedagógico do Curso de Engenharia de Controle e Automação
Inteligência Artificial: 51 ha
Ementa: Histórico. IA simbólica: representação do conhecimento, sistemas especialistas. Lógica nebulosa: conjuntos nebulosos, variáveis linguísticas. Redes neuronais: modelos de neurônios, arquiteturas, algoritmos de treinamento. Computação evolutiva: programação genética, algoritmos genéticos. Estudo de casos e aplicações ao controle e automação. Redes Bayesianas: construção de modelos, propagação de inferência e aplicações. Aprendizagem por reforço: problema geral de aprendizagem por reforço, algoritmos de programação dinâmica, métodos Monte Carlo, algoritmos de diferença temporal e aproximação de funções.
Ementa das Disciplinas de Inteligência Artificial I e II de Acordo com o Projeto Pedagógico do Curso de Engenharia de Computação
Inteligência Artificial I: 68 ha
Ementa: Conceitos fundamentais da Inteligência Artificial (IA). Situação atual da Inteligência Artificial. Reflexões a respeito da natureza da inteligência. Fundamentos filosóficos. IA simbólica e não simbólica. Introdução à programação simbólica. Representação de conhecimento. Estratégias para a solução de problemas. Sistemas de produção. Sistemas especialistas.
Inteligência Artificial II: 68 ha
Ementa: Linhas de estudo da Inteligência Artificial (IA). IA conexionista. Computação evolutiva. Agentes inteligentes. Aprendizagem de máquina. Redes Bayesianas. Processamento de linguagem natural.

Metodologia

O NXT Brick faz parte do kit Lego Mindstorms e é um sistema embarcado (Figuras 4 e 5), protegido por um invólucro de plástico compatível com o sistema de encaixe de blocos Lego. Desta forma pode ser facilmente integrado em construções com Lego adicionando sensores e atuadores. A versão educacional utilizada a Lego Mindstoms Education 9797, inclui uma bateria recarregável e caixa de armazenamento. As especificações do NXT Brick são (VLIST et al., 2008):
• Processador principal Atmel 32-bit ARM (256 Kb flash, 64 Kb RAM, 48 MHz)
• Co-processador Atmel 8-bit AVR (4 Kb flash, 512 Byte RAM, 8 MHz)
• Comunicação sem fio Bluetooth (CSR BlueCoreTM 4 v2.0 +EDR System)
• Comunicação USB 2.0 (Full speed port 12 Mbit/s)
• 4 portas de entrada: interface 6-fios que serve de suporte para ambos os sinais digital e analógico.
• 1 porta de alta velocidade, IEC 61158 Type 4/EN 50170
• 3 portas de saída: interface 6-fios que serve de suporte para a entrada de dados provenientes dos encoders
• Display: 100 x 64 pixel LCD black & white display gráfico
• Alto-falante: canal de saída de som com resolução de 8 bits (suporta uma taxa de amostragem de 2-16 kHz)
• 4 botões de interface com o usuário
• Fonte de alimentação: 6 baterias AA ou uma bateria recarregável de Lithium-Ion.
O kit Lego Mindstoms Education 9797 contém os seguintes sensores e atuadores (VLIST et al., 2008):
• Sensor de toque - detecta quando ele está sendo pressionado por alguma coisa e quando é liberado novamente.
• Sensor de som - detecta ambos, decibéis [dB] e a ponderação tipo A [dBA].
• Sensor de luz - lê a intensidade da luz em um ambiente e mede a intensidade da luz de superfícies coloridas.
• Sensor de ultrassom - mede distâncias de 0 a 255 centímetros, com uma precisão de +/-3 cm.
• Servo motor com sensor de rotação embutido (Figura 6).
O motor é controlado por um circuito chamado ponte-H (Figura 7 – Circuitos intergrados LB1836M e LB1930M). A velocidade do motor é controlada usando modulação por largura de pulso (Pulse Width Modulation, PWM). A velocidade do motor depende da tensão média aplicada e a modulação PWM é uma forma de controle desta tensão média. Com o firmware padrão o intervalo de um ciclo completo é de 128μs, isso corresponde a 7,8kHz. Para o NXT a relação entre a velocidade do motor e a tensão aplicada é linear. A corrente elétrica suportada pelas portas de saída é de aproximadamente 800mA para a porta A e 500mA para B e C. O driver de saída é equipado com proteção térmica para limitar a corrente em caso de superaquecimento (GASPERI e HURBAIN, 2009).

Figura 4: NXT Brick frente: interface com o usuário. Figura 5: NXT Brick verso: terminais de ligação da bateria.

Figura 6: Servo motor e engrenagens. Figura 7: NXT Brick: localização dos circuitos intergrados LB1836M e LB1930M.

Como o presente projeto também tem o propósito audacioso de “dar asas ao NXT” é importante destacar que os autores possuem conhecimento técnico para a conexão de acelerômetros e giroscópios ao Lego Mindstoms Education 9797. O termo correto para “asas” seria hélices. A inovação persiste no fato de são raros os trabalhos encontrados na literatura que tem por objetivo o uso do NXT Brick como placa de controle de voo. Os trabalhos de ALVES et. al (2013) e SANTANA et. al (2014), mostrados nas Figuras 8 e 9, são os pilares da proposta e a adição de redes neurais é o desafio futuro. Na aeronáutica as redes neurais tem uso principalmente no campo de pilotos automáticos de aeronaves e controle e detecção de falhas de sistemas de voo. A identificação e controle deste sistema dinâmico será realizada, utilizando as seguintes plataformas de software ou linguagens de programação: Java (http://www.sun.com/java/) no ambiente (integrated development environment, IDE) Eclipse com o firmware open source leJOS (http://www.leJOS.org/ ). O Java Object Oriented Neural Engine (Joone) permitirá o desenvolvimento da rede neural. Outra opção será o uso do Bricx Command Center (BricxCC, http://bricxcc.sourceforge.net/ ). O Not eXactly C (NXC) é uma linguagem de programação de sintaxe semelhante a C (alto nível) para o NXT Brick. Por causa do espaço de memória disponível para a gravação dos códigos o ambiente computacional Matlab será utilizado principalmente em ensaios off-line.

Figura 8: Robô seguidor de linha com controlador PID (ALVES et. al, 2013).
Figura 9: Controle digital aplicado ao pêndulo invertido com giroscópio (SANTANA et. al, 2014).
Escolha dos Componentes Necessários para a Montagem do VANT
Na disciplina de Introdução a Engenharia de Controle e Automação (IECA), ministrada em 2015/01, foi proposto aos alunos à construção de um quadricóptero, utilizando somente peças LEGO Mindstorms NXT. Com este objetivo buscou-se um conjunto de engrenagens que aumentasse a rotação fornecida pelos motores originais do kit (120 rpm) para um valor próximo de 12000 rpm. Este valor é usualmente encontrado na literatura como referência no projeto de veículos aéreos não tripulados, VANT (também chamados de UAV, do inglês Unmanned Aerial Vehicle). Outra parte do projeto compreendia o projeto da estrutura, conhecida como frame, que deveria ter características específicas de rigidez e capacidade de minimizar a vibração proveniente dos motores.
A estrutura ou frame é composta basicamente por três partes: a placa central, onde os componentes eletrônicos são montados, os braços que são fixados diretamente na placa central e os quatro suportes usados para a fixação do motores nas extremidades dos braços. Como as hélices de um quadricóptero não estão disponíveis no kit Lego NXT, foi necessária a realização de uma pesquisa para a escolha de um kit adequado ao projeto em questão.
Percebeu-se que o ganho de velocidade era proporcional ao aumento de vibração na estrutura formada por blocos e engrenagens Lego. Devido a quantidade de engrenagens necessárias para o aumento da velocidade e a obtenção de no máximo 1200 rpm, com baixo torque final, foram realizados alguns testes alterando-se o motor original do kit Lego NXT. Vários tipos de motores foram estudados.
Constatou-se a necessidade de substituição dos motores e um novo estudo foi realizado para a adaptação das três portas disponíveis no NXT BricK de modo a garantir a ligação dos motores. Considerando novos valores de tensão e corrente os motores foram definidos tomando como base o empuxo necessário para a carga a ser içada.
Diante do exposto o projeto deixou de ser o de um quadricóptero e passou a ser o de um tricóptero, com a utilização de somente três motores defasados de 120º. Com a mudança dos motores surgiram várias outras novas alterações. Foi necessária à adição de novos componentes como a ESC (Eletronic Speed Control), novas hélices, agora adequadas a velocidade dos motores e uma bateria com capacidade para suprir o consumo de energia deste novo conjunto. Percebeu-se também, que a estrutura composta apenas por blocos Lego não seria tão eficaz na construção do tricóptero e, portanto a frame foi escolhida dentre os modelos disponíveis no mercado.
Tendo em vista o objetivo principal de utilização do NXT Brick na função de Flight Control Board, os componentes citados foram escolhidos. Informações sobre tricópteros montados por outros autores serviram de base para a determinação das dimensões e dos pré-requisitos de cada componente. De posse dos projetos individuais que foram entregues na forma de relatório, pelos alunos da turma de IECA 2015/01, efetuou-se um cruzamento de informações para a determinação do fabricante e do modelo de cada componente a ser adquirido para a montagem do VANT.
Dada a variedade de possibilidades de montagem e o grande volume de componentes disponíveis no mercado, optou-se por usar um método de projeto baseado na escolha do componente conforme sua amostragem ou reconhecimento. Os alunos da disciplina de Introdução a Engenharia de Controle e Automação (2015/01) foram municiados com informações técnicas sobre a montagem de veículos aéreos não tripulados e então instruídos a montar e estabelecer seu próprio projeto. De acordo com o seu tipo ou classe, foram identificados os equipamento mais citados. Estabeleceu-se assim um projeto padrão, ou seja, aquele que teria maior chance de atender aos preceitos do presente projeto. A Tabela 1 apresenta os dados coletados e destaca o conjunto de componentes que compõe o projeto padrão.


Tabela 1: Determinação do projeto padrão a partir do projeto individual realizado pelos alunos de Introdução a Engenharia de Controle e Automação (2015/01).



De posse destes dados foi estabelecido como projeto padrão o seguinte kit:
- 4 motores Hextronik DT750 750 KV. http://www.hobbyking.com/hobbyking/store/__68534__hexTronik_DT750_Brushless_Outrunner_750kv_AR_Warehouse_.html?strSearch=Hextronik%20DT750%20750%20KV
- 1 bateria Turnigy 2200 mah 3S 25C LIPO 11.1V. http://www.hobbyking.com/hobbyking/store/__58883__Turnigy_2200mAh_3S_25C_Lipo_Pack_AR_Warehouse_.html?strSearch=Turnigy%202200%20mah%203S%2025C
- 4 ESCs Turnigy Plush 25A (Electronic Speed Controller – Controlador Eletrônico de Velocidade.). http://www.hobbyking.com/hobbyking/store/__68532__TURNIGY_Plush_25amp_Speed_Controller_AR_Warehouse_.html?strSearch=Turnigy%20Plush%2025
- 1 kit de 4 hélices GWS SF. http://www.hobbyking.com/hobbyking/store/__57553__11x4_7_SF_Props_4pc_Standard_Rotation_White_AR_Warehouse_.html?strSearch=GWS%20SF%2011x4.7
- 1 Flight Control Board (Placa de Controle de Vôo). http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=56269
- 1 Frame (estrutura), a definir.
- 1 kit radio transmissor e receptor, a definir

Resultados Esperados


Os resultados e impactos esperados são os mesmos que o autor GRANDI et al. (2014) relata ao final das atividades laboratoriais relacionadas à robótica móvel, realizadas pelos alunos do curso Foundation of Industrial Robotics na Engineering School of the University of Bologna. As atividades foram desenvolvidas com o objetivo de familiarização e desenvolvimento de habilidades relacionadas ao assunto proposto e também para que os alunos aprendessem a cooperar uns com os outros, como parte de uma equipe de trabalho. Segundo GRANDI et al. (2014), ainda que as tarefas fossem sempre um desafio à ideia de envolver os alunos em atividades foi um sucesso. Durante as atividades de laboratório os alunos foram geralmente organizados em grupos de aproximadamente cinco membros. Cada grupo trabalhou de forma autônoma para alcançar os objetivos da tarefa atribuída, auto-organizando o projeto de hardware / software. Sugestões e correções mínimas foram efetuadas pelos supervisores em casos estritamente necessários. Cada grupo recebeu as especificações do projeto e apenas algumas restrições gerais deveriam ser respeitadas tal como o tipo de cinemática utilizada para o robô móvel e as suas dimensões. A data do teste final foi definida no início do curso e os grupos tiveram que planejar e organizar o desenvolvimento do trabalho, a fim de respeitar o prazo. Algumas horas do curso foram dedicadas ao ensino de Java e do ambiente leJOS. Normalmente, os alunos necessitaram de duas semanas para aprender Java e leJOS / Lego e de três a quatro semanas para concluir a atividade de laboratório. Como parte do exame final do curso, cada grupo tinha que apresentar um relatório técnico final sobre a experiência, descrevendo o software e problemas mecânicos encontrados durante o desenvolvimento e as soluções desenvolvidas para resolvê-los. Segundo GRANDI et al. (2014), todas as observações apresentadas ao longo dos anos pelos alunos sobre esta atividade são absolutamente positivas e entusiasmantes. Além das habilidades técnicas adquiridas, o fato de adquirir experiência no trabalho em equipe, interagindo também com outros grupos e outras soluções para o mesmo problema, pareceu ser muito apreciado pelos alunos, destacando como importante para a sua formação. As habilidades e conhecimentos adquiridos nesta experiência foram exploradas pelos alunos em muitos outros cursos e áreas de conhecimento.

Equipe do Projeto

NomeCH SemanalData inicialData final
FERNANDO BALTAR VERONEZ2001/03/201608/08/2017
GABRIEL IEPSEN WESTPHAL2005/06/201731/12/2017
JÔNATAS LEMUEL BISPO ZOTTIS2001/03/201628/02/2018
MARCELO ESPOSITO801/03/201628/02/2018
Thomas Lucas Irigoite Barroco2001/03/201620/12/2016

Página gerada em 19/04/2024 07:02:22 (consulta levou 0.042853s)