OMNET++ APLICADO À ROBÓTICA COOPERATIVA Daniel Costa Ramos Doutorando Disciplina de Redes de Comunicação Professor Carlos Montez 07/2014
2/25 Estrutura da Apresentação Introdução Robótica Cooperativa Material e Métodos Software e Estrutura da Simulação Parâmetros e Considerações Resultados Código e Principais Funções Simulação Conclusão Problemas e Trabalhos Futuros
Introdução 3/32
4/25 Introdução O que é um robô? Comunicação
Introdução Representação de um robô y 5/25 x
6/25 Introdução Robótica Cooperativa
7/25 Introdução Arquiteturas de Comunicação Centralizada: robôs enviam seus dados para uma central que realiza as decisões do grupo; Descentralizada: robôs trocam mensagem entre si, sem interferência de um agente central; 2 3 4 1 7 Robo 1..N (x,y) 5 8 6
8/25 Introdução Cooperação Consenso: algoritmos capazes de fazer os robôs entrarem em acordo sobre uma informação; Rendezvous: algoritmos que realizam o encontro dos robôs (após uma missão) em uma posição acordada;
9/25 Introdução Objetivos do trabalho Estudar e aprender o software; Representar os robôs e sua comunicação; Montar algoritmo capaz de enviar mensagens e lidar com o recebimento das mesmas; Realizar o consenso sobre o ponto de encontro; Avaliar a troca de mensagem e a convergência deste ponto para todos os robôs; Detectar problemas e propor soluções; Avaliar a utilização do software para tese.
Materiais e Métodos 10/32
11/25 Materiais e Métodos Software OMNeT++ O OMNeT++ é um simulador e espaço de trabalho extensível, modular e baseado em C++, cujo principal objetivo é construir simulações de redes. >> SO: Windows utilizando terminal do programa. >> Linguagem: C/C++ Protocolo de comunicação para rendezvous/consenso >> Ordoñez, B. (2013) Estratégia de controle cooperativo baseado em consenso para um grupo multi-veículos. Tese de doutorado, UFSC, PGEAS, 2013. Assunto da minha tese
12/25 Preparando a Simulação Cada robô possui estados (x, y), referência (x, y) para onde devem ir e um vetor de estados, com os estados de todos os outros robôs. Conexões limitadas (não há ninguém que saiba todos os estados); A mensagem transmitida aos vizinhos (multi-cast para todas conexões) contém este vetor e são transmitidas sequencialmente (Tese do Bernardo);
13/25 Preparando a Simulação 3 Etapas de elaboração: 1. Etapa 1: robôs estacionários, primeiras trocas de mensagens. Os robôs trocavam mensagem sobre a referência, fazendo a média do valor recebido com o seu valor; 2. Etapa 2: robôs estacionários, trocas de mensagem envolvendo vetores contendo as informações sobre as posições iniciais dos robôs. Foi elaborada falha nas mensagens (10%), algumas análises estatísticas e detecção dos primeiros problemas; 3. Etapa 3: robôs móveis e mudança na aparência da simulação. Foi implementado uma solução para o problema detectado na segunda etapa.
14/25 Parâmetros 10 Robôs com a configuração: Atraso de propagação: 20ms Tempo de Ciclo: 500ms Chance de Perda: 10% Considerações: atraso de propagação, processamento (inicial e final);
15/25 Considerações Não há controle sobre perdas de pacotes ou de informações. É considerado o envio rápido e massivo de mensagens similares. Se houver erro ou perda de uma mensagem, não haverá impacto significativo no sistema; Foi considerada uma rede isolada, sem tráfego paralelo. O atraso de 20ms já possui uma margem de segurança e é considerado o atraso máximo; Foi dado intervalo de 50ms entre os robôs, ou seja, no pior caso, o robô terá 30msde processamento; Foi considerado um número razoável de robôs, o número 10 foi utilizado para facilitar a interpretação dos tempos dos eventos; Os robôs possuem um movimento simples, incrementando ou decrementando seu movimento em direção ao ponto de rendezvous.
Resultados 16/32
17/25 Simulação - Arquivos A simulação consiste de quatro arquivos: Robot.ned : define topologia; Robov2.cc : arquivo principal; Robot.msg: define a mensagem; Omnetpp.ini: inicialização do OMNeT++.
18/25 Simulação Funções Arquivo Principal Inicialização: Executa 1 vez só, no início da simulação; Atribui valor inicial para variáveis; Agenda a primeira auto mensagem para cada robô; Criação de mensagem: Cria uma mensagem, utilizando os parâmetros do arquivo msg; Atribui valores para destinatário e origem.
19/25 Simulação Funções Enviar de mensagem: Copia os dados do vetor de estados para a msg; Envia a msg para o destinatário; Atualização de display: Atualiza o texto no display gráfico; Finalização: Executa uma única vez ao finalizar a simulação; Exibe dados estatísticos;
20/25 Simulação Funções Gerenciador de mensagem: Acionado toda vez que uma mensagem chega ao módulo; Sinal de Mensagem Origem == Destinatário? Sim. Envie mensagens aos vizinhos e agende a próxima auto mensagem. Não. A mensagem falhou? 10% Sim. Deleta a mensagem. 90% Não. Armazene os dados.
21/25 Simulação - Execução
22/25 Simulação Problema Detectado
23/25 Soluções Msg Receb. 10 10 10... Estados 4 7 8... Resultado 10 10 10... Criação de contadores = idade dos dados. X1 X2 X3 X4... X9 X10 1 0 1 2 6 4 Cada robô possui os estados como antes, mas também um vetor indicando a idade dos mesmos. Só há troca de dados se o dado recebido for mais novo que o existente. A cada envio/ciclo, o contador é incrementado em cada robô para todos os estados que o mesmo tem armazenado. Seu próprio dado (posição atual), é atualizado com contador 0.
24/25 Soluções Msg Recebida 10 10 10... Contador Msg 3 1 2... Anterior 20 20 20... Contador Velho 2 5 1... Resultado 20 10 20... 2 1 1...
25/25 Simulação Final
26/25 Simulação Final
27/25 Simulação Final
28/25 Simulação Final
29/25 Simulação Final Executar Simulação;
Conclusão 30/32
31/25 Conclusão Algoritmo funcionando conforme planejado; Melhor detecção de falhas e de problemas relacionados a comunicação; Foi possível determinar um caso que a tese anterior não abordou; A principal dificuldade foi aprender o funcionamento do software e conciliar com falta de familiaridade com C++. Apesar disto, os tutoriais e o manual do software foram de grande ajuda para conseguir elaborar este código. Pretende-se dar continuidade a este trabalho já que está diretamente ligado ao assunto da tese de doutorado. Pretende-se realizar a incorporação de uma solução de consenso mais elaborada;
Obrigado pela Atenção! CONTATO daniel8484@yahoo.com.br 32/32