25
Comando e Monitoração de Comando e Monitoração de um Robô Móvel usando um Robô Móvel usando Tecnologia Internet Tecnologia Internet Aluno: Helder Oliveira de Castro Orientador: Cairo Lúcio Nascimento Júnior Instituto Tecnológico de Aeronáutica Laboratório de Máquinas Inteligentes Apresentação final do Trabalho de Graduação Computaçã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:

Embed Size (px)

Citation preview

Page 1: 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:

Comando e Monitoração Comando e Monitoração de um Robô Móvel de um Robô Móvel usando Tecnologia usando Tecnologia

InternetInternet

Aluno: Helder Oliveira de Castro Orientador: Cairo Lúcio Nascimento JúniorCo-orientador: Jeeves Lopes dos Santos

Aluno: Helder Oliveira de Castro Orientador: Cairo Lúcio Nascimento JúniorCo-orientador: Jeeves Lopes dos Santos

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Apresentação final do Trabalho de Graduação

Computação

Page 2: 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:

IntroduçãoIntroduçã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

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 3: 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:

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.

ObjetivoObjetivo

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 4: 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:

TópicosTó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

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 5: 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:

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.

Visão geral do robô TrekkerVisão geral do robô Trekker

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 6: 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:

O Trekker montado

Visão geral do robô TrekkerVisão geral do robô Trekker

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 7: 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:

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-tarefas de 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.

O microcontrolador OOPicO microcontrolador OOPic

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 8: 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:

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.

O microcontrolador OOPicO microcontrolador OOPic

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 9: 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:

O microcontrolador OOPicO microcontrolador OOPic

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Uma interessante alternativa de comunicação externa com o OOPic é usar o protocolo SCP, ou Serial Control Protocol, 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 single step 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 – bootstrap mode.

Page 10: 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:

O microcontrolador OOPicO microcontrolador OOPic

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Branch visto no código compilado

Page 11: 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:

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).

Descrição do funcionamento do Descrição do funcionamento do sistemasistema

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 12: 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:

Comunicação usuário remoto - Comunicação usuário remoto - servidorservidor

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

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.

Page 13: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 14: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 15: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 16: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 17: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 18: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 19: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 20: 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:

Comunicação servidor - TrekkerComunicação servidor - Trekker

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

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.

Page 21: 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:

Comunicação servidor - TrekkerComunicação servidor - Trekker

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

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.

Page 22: 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:

Função Main() do programa embarcado

Comunicação servidor - TrekkerComunicação servidor - Trekker

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 23: 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:

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas InteligentesDescrição do funcionamento do Descrição do funcionamento do

sistemasistema

Arquitetura proposta para o controle web do ROMEO adaptada para o robô Trekker

Page 24: 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:

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.

ExperiênciasExperiências

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Page 25: 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:

• 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.

ConclusãoConclusão

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes

Instituto Tecnológico de Aeronáutica

Laboratório de Máquinas Inteligentes