320 likes | 418 Vues
Utilização de Técnicas de Verificação Formal para a Coordenação de Sistemas Multi-Robôs. Victor Boeing Ribeiro. 27 de outubro de 2011. Sumário. Conceitos básicos Introdução Modelagem UPPAAL Implementação Expansão do método redução de complexidade Conclusão e perspectivas.
E N D
Utilização de Técnicas de Verificação Formal para a Coordenação de Sistemas Multi-Robôs Victor Boeing Ribeiro 27 de outubro de 2011
Sumário • Conceitos básicos • Introdução • Modelagem UPPAAL • Implementação • Expansão do método • redução de complexidade • Conclusão e perspectivas Sumário 2/31
Sistemas a Eventos Discretos • Processos não são governados pela variação de variáveis contínuas, mas por eventos– alterações instantâneas, sem estados intermediários • Um Autômato Finito Determinístico é formalmente definido pela quíntupla G = (X, Σ, f, x0, Xm), onde: • X: conjunto finito de estados • Σ: conjunto de eventos (alfabeto) • f : X, Σ → X função de transição • x0: estado inicial • Xm: conjunto de estados finais (marcados) Conceitos Básicos 3/31
Autômatos Temporizados • Autômatos temporizados são uma extensão de máquinas de estados finitos com variáveis de tempo (timers) e variáveis discretas limitadas • Guard (condição) • Update (atualização) • Sync (canal de sincronização) Conceitos Básicos 4/31
Verificação • Uso de técnicas matemáticas para provar que uma propriedade é satisfeita ou não, procurando por sequências de eventos que possam violá-la correções descrição operacional Contra exemplo SISTEMA Modelagem Não VERIFICAÇÃO especificações Propriedades esperadas Propriedade satisfeita Sim Conceitos Básicos 5/31
Objetivos • Coordenação da atividade de movimentação de múltiplos robôs dentro de um espaço delimitado e com obstáculos; • Desenvolvimento de um coordenador que forneça uma lista de instruções a serem executadas pelos robôs para alcançarem a posição desejada, evitando obstáculos e sincronizando seus movimentos com outros robôs Introdução 6/31
Método • Modelagem do sistema multi-robôs como sistema a eventos discretos; • Verificação intencional de propriedades de alcançabilidade; • Geração de um contra-exemplo com a lista de instruções a serem executadas pelos robôs Introdução 7/31
Especificações • Múltiplos robôs, área limitada e obstáculos; • Robôs devem respeitar os limites do cenário, evitar colisões com obstáculos e entre eles; • Área de trabalho dividida em células: • Células podem estar livres, ocupadas por • um robô ou obstáculo • Robôs podem executar três tipos de movimentos: • Rotação 90o para direita e esquerda • Movimento para frente 3 1 2 Introdução 8/31
Modelagem 2 1 Modelagem 9/31
Modelagem start Initialization start Robot Controller Moving Forward Rotating Left Rotating Right rotateRight rotateLeft mForward light encode encode Light sensor Encoder Modelagem 10/31
Inicialização Quando todos os ID’s são encontrados é enviado um sinal broadcast start! Procura pelo ID dos robôs em cada linha e coluna Quando um ID é encontrado suas respectivas coordenadas são atualizadas Modelagem 11/31
Controle Espera pelo sinal broadcast start? Antes de enviar mForward! o Controlador verifica se a próxima célula está livre e se o robô não sairá do cenário. Pode enviar rotateLeft! E rotateRight! livremente Modelagem 12/31
Robô light?: Libera a célula anterior encode?: Atualiza a orientação do robô mForward?: Atualiza a próxima célula e vai para o lugar Moving rotateLeft? ou rotateRight?: Vai para o lugar Rotating Modelagem 13/31
Sensores Light sensor: envia light! Encoder: envia encode! Modelagem 14/31
Geração de Trace • Verificação de fórmulas de alcançabilidade e a geração de contra-exemplos (shortest trace) • Filtragem das transições sincronizadas entre controlador e robôs • FÓRMULA: • A[] not (x[0]==2 and y[0]==3) • Control.Idle->Control.Idle { 1, rotateLeft[0]!, 1} • Control.Idle->Control.Idle { 1, rotateLeft[0]!, 1} • Control.Idle->Control.Idle { 1, mForward[0]!, 1} • Control.Idle->Control.Idle { 1, rotateRight[0]!, 1} • Control.Idle->Control.Idle { 1, mForward[0]!, 1 } Implementação15/31
Arquitetura Trace generator Trace executor Trace Execution confirmation Instructions Operational control Environment Information Sensors Information Commands Robot Sensors Motors Implementação16/31
Implementação • Interface para entrada de valores para posição inicial do robô, orientação e obstáculos • Essa informação é gravada no arquivo “xml” que contém o modelo do sistema • Posição objetivo do robô • Gravada no arquivo “q” que contem a fórmula a ser verificada • Acesso ao verificador para cálculo do menor contra-exemplo • Envio do trace calculado através de serial Bluetooth Implementação17/31
Implementação Posição inicial Obstáculos Posição final Orientação inicial Trace calculado Implementação18/31
Expansão do método - Objetivos • Modelagem do sistema com a linguagem FIACRE • Avaliação da possibilidade de execução de ações simultaneamente, por diferentes robôs – aumento da eficiência do sistema • Avaliação da complexidade dos modelos gerados • Proposta de um método para redução da complexidade Expansão do Método19/31
Modelo Sequencial • Portas TurnR, TurnL e GoF • Controle responsável por gerenciar a matriz • Passagem instantânea entre células Expansão do Método20/31
Modelo Sequencial 1 2 Expansão do Método21/31
Modelo Paralelo • Portas TurnR, TurnL, GoF, Release e Wait • Estado intermediário de movimentação • Instruções enviadas alternadamente para os robôs Expansão do Método22/31
Modelo Paralelo 1 2 Expansão do Método23/31
Complexidade Expansão do Método24/31
Método para redução de complexidade • Desenvolvimento de um método com baixa complexidade e que mantenha o paralelismo no trace gerado • Cálculo de um trace sequencial através do modelo de baixa complexidade • Algoritmo que avalia quais instruções podem ser executadas simultaneamente Redução de complexidade 25/31
Método para redução de complexidade Redução de complexidade 26/31
Método para redução de complexidade 1 2 Redução de complexidade 27/31
Método para redução de complexidade Redução de complexidade 28/31
Método para redução de complexidade Redução de complexidade 29/31
Conclusão • Aumentando a eficiência na geração do trace aumenta-se também o grau de complexidade do modelo • Modelo que gera trace com paralelismo não é flexível e é impraticável sua aplicação para sistemas com elevado número de robôs ou células • Método para redução de complexidade apresentou um bom resultado, gerando um trace com paralelismo e com um grau de complexidade muito menor Conclusão e Perspectivas30/31
Perspectivas • Utilização de obstáculos dinâmicos no sistema – portas • Abordagem através da Teoria de Controle Supervisório • Abordagem através de Autômatos Jogos Temporizados Conclusão e Perspectivas31/31
Obrigado! Victor Boeing Ribeiro boeing@das.ufsc.br