250 likes | 366 Views
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes. Apresentação final do Trabalho de Graduação. Comando e Monitoração de um Robô Móvel usando Tecnologia Internet. Aluno: Helder Oliveira de Castro Orientador: Cairo Lúcio Nascimento Júnior
E N D
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Apresentação final do Trabalho de Graduação Comando e Monitoração de um Robô Móvel usando Tecnologia Internet Aluno: Helder Oliveira de Castro Orientador: Cairo Lúcio Nascimento Júnior Co-orientador: Jeeves Lopes dos Santos Computação
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Introdução • O projeto “REALabs – Uma Federação de WebLabs Cooperativos”, é um projeto da Fapesp integrado por UNICAMP, ITA, UFU, PUC-RS e o CTI. • Este projeto define uma interface Web para que as instituições possam compartilhar recursos de seus laboratórios entre si através de experiências realizadas remotamente. • O ITA é representado pelo LMI, que disponibilizará, inicialmente, dois robôs móveis para experiências remotas: o ROMEO e o Trekker. • Cada laboratório precisa configurar dois serviços básicos: i) como a requisição web vai chegar ao servidor local e como essa requisição vai interagir com o recurso do laboratório.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Objetivo • Este trabalho tem dois objetivos básicos: • Definir um conjunto de experiências que serão realizadas pelo robô Trekker, do LMI. • Disponibilizá-lo para ser comandado e monitorado remotamente, usando tecnologia Internet.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Tópicos • Serão apresentados os seguintes tópicos: • Visão geral do robô Trekker • O microcontrolador OOPic • Descrição do funcionamento do sistema • Comunicação usuário remoto - servidor • Comunicação servidor – Trekker • Experiências • Conclusão • Demonstração
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Visão geral do robô Trekker • O Trekker possui os seguintes subsistemas: • Sistema de propulsão: 2 servomecanismos CC. • Sistema de energia: 8 baterias tamanho AA de 1,5 V. • Sistema de sensoriamento: 1 sensor de ultra-som (1 transmissor, 1 receptor) e 1 sensor de infravermelho para medição de distância montados em torre giratória, 1 bússola eletrônica, 2 encoders ópticos (1 em cada roda), 4 pares de foto-sensores usados para leitura de faixas de navegação no solo, 1 sensor de contato frontal. • Sistema de computação: 1 placa com microcontrolador OOPic II e uma placa de expansão. • Sistema de comunicação externa: comunicação sem fio com computador base usando módulos Serial - ZigBee, câmera embarcada sem fio.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Visão geral do robô Trekker O Trekker montado
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes O microcontrolador OOPic • O OOPic é o primeiro PIC a ter um sistema operacional que usa uma abordagem orientada a objetos para fazer controle do hardware. O conceito é bem simples: • Ele usa objetos pré-programados e multi-tarefasde uma biblioteca de objetos altamente otimizada para fazer o interfaceamento com o hardware. • O programador escreve programas em Basic, C ou Java para controlar os objetos. • Durante a operação, os objetos rodam continuamente e simultaneamente por trás enquanto os scripts rodam por cima dizendo aos objetos o que fazer. • Cada aspecto dos objetos pode ser controlado pelos scripts enquanto os objetos se comunicam com o hardware. • A biblioteca de objetos do OOPIC contém objetos que conhecem como interagir com os sensores e servos mais populares do mercado.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes O microcontrolador OOPic • Outro ponto importante é a capacidade de criar Circuitos Virtuais (CV)com o OOPic. • Um CV é um processo que roda por trás da execução do programa principal. • Num CV, um conjunto de objetos interagem entre si, através do comando de linking. • Para cada CV, o sistema operacional cria uma thread responsável pela sua execução. • Uma aplicação importante é para a leitura dos encoders das rodas: deseja-se que toda a vez que uma certa linha de IO digital passe pelo nível lógico 1 um contador seja incrementado. • Cria-se então um CV que usa um contador linkado à DIO, logo na inicialização do programa. O encoder está montado e nenhuma preocupação adicional precisará ser despendida.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes O microcontrolador OOPic • Uma interessante alternativa de comunicação externa com o OOPic é usar o protocolo SCP, ou Serial ControlProtocol, que possui as seguintes características: • O sistema operacional possui uma thread só para escutar e interpretar comandos da porta serial. • A execução desse comandos não interfere no fluxo normal do programa embarcado, a não ser que isso seja explicitamente pedido. • É possível alterar e ler diretamente valores da RAM, pausar e reiniciar a execução do programa, pedir o modo singlestep e ainda o reset da aplicação. • É possível dar saltos incondicionais (Branch) para regiões do programa, interrompendo o fluxo normal (para voltar somente no RET) • É possível ainda escrever diretamente na EEPROM, permitindo que programas inteiros sejam enviados para o OOPic pela porta serial – bootstrapmode.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes O microcontrolador OOPic Branch visto no código compilado
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Descrição do funcionamento do sistema • O sistema proposto para comando e monitoração do robô Trekker consistiu de uma adaptação do sistema de controle do robô ROMEO proposto pelo co-orientador do Trabalho de Graduação Jeeves Lopes dos Santos. • Esse sistema é constituído por: • Robô Trekker. • Computador local servidor (AMD Sempron 1.6GHz, 512MB RAM). • Navegador de internet. • Página web escrita em HTML. • Câmera embarcada sem fio. • Câmera panorâmica (Axis 214 PTZ da Axis Communications).
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Comunicação usuário remoto - servidor • O usuário conectado a internet acessa à página HTML e dela solicita a realização da experiência remota. • No servidor roda o programa CGI de interface, que captura as informações solicitadas pelo usuário e, como proposto pelo Jeeves no controle do ROMEO, escreve três arquivos: • status.txt – arquivo que armazena o status do robô Trekker. • log.txt – cadastra o IP do usuário que solicitou alguma experiência. • prog.txt – arquivo criado assim que o usuário solicita a experiência e ---------------contém os dados entrados pelo usuário na página.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Comunicação servidor - Trekker O servidor, por sua vez, possui um script MatLab, que continuamente checa a existência do arquivo prog.txt. Assim que o encontra, decodifica as informações e, conforme o movimento solicitado pelo usuário, faz a comunicação com o robô. A arquitetura do sistema embarcado do Trekker foi desenhada de maneira que o processamento ficasse todo concentrado no servidor. O servidor solicita a realização das experiências através de saltos incondicionais (comando Branch) para as rotinas que efetivamente fazem o tratamento do movimento desejado.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Comunicação servidor - Trekker Durante a operação do robô é passada ao arquivo status.txt a atual ação do robô, o que troca a página vista pelo usuário. Por fim, quando a experiência termina o servidor altera o conteúdo do arquivo status.txt informando ao usuário que o robô está disponível e aguardando comandos, e o usuário volta ao formulário inicial.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Comunicação servidor - Trekker Função Main() do programa embarcado
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Descrição do funcionamento do sistema Arquitetura proposta para o controle web do ROMEO adaptada para o robô Trekker
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Experiências • Foi proposta a seguinte configuração para as experiências com o Trekker: • Translação para frente e para trás: • Usuário define tempo de translação e velocidade. • Rotação de 45° e 90° no sentido horário e anti-horário. • Varredura do Sonar e do Infravermelho: • Usuário define início, Passo e Fim da varredura • Estimativa da trajetória do Trekker, com base na leitura dos Encoders e da Bússola eletrônica. • A arquitetura no programa do servidor é sempre a mesma: • Configura alguma variável de controle, conforme necessário. • Envia o comando de Branch. • Lê o valor pedido, se o comando requisitar leitura.
Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Conclusão • A arquitetura proposta usa o SCP para simplificar a comunicação com o robô. Uma série de funções são criadas para definir os movimentos, e desta forma toda a lógica interna fica simplificada. • Memória RAM do robô é poupada, pois não é necessário definir variáveis internas de controle. • O programa embarcado fica mais simples e menor (código “limpo”). • O programa do servidor usa mensagens muito simples, e a estrutura do código é sempre a mesma. • Entretanto, performance é perdida nos comandos de varredura – cada vez que o sensor faz uma leitura ele tem que enviar o valor lido para o servidor, o que torna esses comandos um pouco mais lentos.