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
SISTEMA
descrição
operacional
Não
Modelagem
Contra
exemplo
VERIFICAÇÃO
especificações
Conceitos Básicos
Propriedades
esperadas
Sim
Propriedade
satisfeita
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
Introdução
8/31
Modelagem
var map: matrix:= [[-1, -1, -1, -1,
[-1,
2,
[-1,
0,
[-1,
0,
0,
0,
-1, 1,
0,
-1],
-1],
0, -1],
[-1, -1, -1, -1,
Modelagem
-1],
-1]]
9/31
Modelagem
start
start
Initialization
Robot
Controller
rotateRight
rotateLeft
mForward
Moving
Forward
light
Light
sensor
Modelagem
Rotating
Left
encode
Rotating
Right
encode
Encoder
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
Modelagem
Quando um ID é encontrado suas
respectivas coordenadas são atualizadas
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ô
encode?: Atualiza a
orientação do robô
light?: Libera a célula
anterior
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!
Modelagem
Encoder: envia encode!
14/31
Geração de Trace
 Verificação de fórmulas de alcançabilidade e a geração de contraexemplos (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ção
15/31
Arquitetura
Trace generator
Trace
Trace executor
Execution
confirmation
Instructions
Sensors
Information
Operational control
Environment
Information
Commands
Sensors
Motors
Robot
Implementação
16/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ção
17/31
Implementação
Posição inicial
Obstáculos
Posição final
Orientação inicial
Trace calculado
Implementação
18/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étodo
19/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étodo
20/31
Modelo Sequencial
ROBÔ 1
ROBÔ 2
01.
GoF
02.
TurnR
03.
GoF
04.
GoF
05.
GoF
06.
TurnR
07.
GoF
08.
TurnL
09.
TurnL
10.
TurnL
11.
TurnL
12.
GoF
13.
GoF
14.
GoF
15.
TurnL
16.
TurnL
Expansão do Método
21/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étodo
22/31
Modelo Paralelo
ROBÔ 1
ROBÔ 2
01.
GoF
GoF
02.
Wait
TurnR
03.
Wait
GoF
04.
GoF
TurnL
05.
TurnR
TurnL
06.
GoF
Wait
07.
TurnL
GoF
08.
TurnL
GoF
09.
Wait
GoF
10.
Wait
TurnL
11.
Wait
TurnL
Expansão do Método
23/31
Complexidade
Número de estados
Modelo paralelo
Modelo sequencial
ROBOTS
ROBOTS
CELLS
2
3
2
3
16
168 448
44 311 488
3 840
215 040
25
486 640
231 806 080
9 600
883 200
Expansão do Método
24/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
ROBOT 1
01.
02.
03.
04.
TurnL
TurnL
GoF
GoF
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
ROBOT 2
GoF
GoF
TurnR
GoF
TurnL
TurnL
GoF
GoF
GoF
TurnL
TurnL
GoF
TurnL
GoF
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 Perspectivas
30/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 Perspectivas
31/31
Victor Boeing Ribeiro
[email protected]
Obrigado!
Download

GoF - UFSC