Acesso ao Trabalho - Bacharelado em Ciência da Computação

Transcrição

Acesso ao Trabalho - Bacharelado em Ciência da Computação
Alexandre Heideker
Validação Robótica em Simulação Multiagentes: Uma
Proposta de Ligação Entre os Mundos Virtual e Real
Monografia
apresentada
ao
Centro
de
Matemática,
Computação e Cognição CMCC/UFABC - como parte dos requisitos
necessários à obtenção do título de Bacharel em
Ciência da Computação.
Orientadora: Dr a Maria das Graças Bruno Marietto
Co-Orientador: Dr. Wagner Tanaka Botelho
Universidade Federal do ABC
15 de Dezembro de 2010
R ESUMO
A simulação baseada em agentes tem mostrado seu valor em diversos estudos, criando
modelos para entender e aprimorar o sistema alvo considerado. Na literatura, existem
vários métodos e ferramentas para validar estas simulações. Porém, em determinados tipos
de Simulação Multiagentes (exemplo do modelo sócio-cognitivo), ainda existem modelos
conceituais que não podem ser validados pelos métodos tradicionais. O objetivo principal
desta pesquisa é apresentar uma proposta para a validação de Simulações Multiagentes
via interligação entre o mundo real e virtual com o uso de plataformas robóticas. Um
estudo sobre as Simulações Multiagentes é apresentado para contextualização das técnicas
utilizadas no processo de validação. O estudo dos métodos de validação robótica a ser
aplicado em um sistema multiagente e a adaptação da plataforma LEGO Mindstorms
permitirá a criação de um ambiente real.
ii
A GRADECIMENTOS
Gostaria de agradecer em primeiro lugar a Universidade Federal do ABC, sem a qual
esta realização não seria possível. Com a mesma consideração, agradeço também a
professora Dr a Maria das Graças Bruno Marietto e ao professor Dr. Wagner Tanaka Botelho,
meus orientadores neste projeto, cujos ensinamentos e conselhos sempre colocaram meus
esforços no rumo certo.
Agradeço também a minha esposa Samantha, pelo seu amor e paciência permanentes
ao longo destes quatro anos de graduação. A minha Mãe, pelo seu empenho em me
proporcionar a melhor educação que estava a seu alcance e meus familiares e amigos, por
compreenderem a longa ausência durante este período.
Finalmente, dedico esta conquista a memória de meu pai Carlos Heideker, que durante
sua vida me mostrou a importância do estudo e do trabalho para a formação de meu caráter,
sempre me desafiando a conquistar mais. Pai...Eu consegui!
S UMÁRIO
Resumo
ii
Sumário
iv
1 Introdução
1
1.1 Objetivos do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2 Principais Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3 Organização do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
I Referencial Teórico
3
2 Simulação Multiagentes: Conceitos Fundamentais
4
2.1 Modelos de Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.1.1
Simulação Multiagentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.1.2
Áreas da Simulação Multiagentes . . . . . . . . . . . . . . . . . . . . . . .
9
3 Verificação e Validação em Simulações Multiagentes
13
3.1 Verificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2 Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2.1
Validação Estática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2.2
Validação Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.3
Técnicas de Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.3.1
Técnicas Visuais . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.3.2
Técnicas Estatísticas . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2.3.3
Técnicas Comparativas . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3 Validação Sócio-Cognitiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4 Robótica: Conceitos Fundamentais
22
4.1 Sistema Mecatrônico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4.1.1
Sistema Mecânico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4.1.2
Atuadores e Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.1.3
Elementos de Computação na Mecatrônica . . . . . . . . . . . . . . . . .
25
4.2 Simulação Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
iv
SUMÁRIO
v
4.3 Validação Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1
27
Multiagentes Robóticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
5 Validação em Simulação Multiagentes: Um Estudo de Caso na Plataforma Swarm
31
5.1 Plataformas de Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.1.1
Plataforma Repast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.1.2
Plataforma Ascape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.1.3
Plataforma NetLogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.2 Swarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.2.1
Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
II Modelagem Conceitual e Computacional
40
6 Modelo Conceitual: Arquitetura de Integração dos Mundos Virtual e Real
41
6.1 Estrutura da Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
6.2 Definição dos Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
6.2.1
Protocolo de Comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Modelo Computacional e Análise de Dados
7.1 A Simulação do Robô Explorador . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
47
47
7.1.1
Objetivo da Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
7.1.2
Modelo Conceitual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
7.2 Ligação Entre Mundo Virtual e Real . . . . . . . . . . . . . . . . . . . . . . . . . .
51
7.3 Definição do Protocolo de Comunicação . . . . . . . . . . . . . . . . . . . . . . .
52
7.3.1
Interface Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
7.4 O Agente Robô Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
7.4.1
Especificação de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
7.4.2
Especificação dos Movimentos . . . . . . . . . . . . . . . . . . . . . . . .
56
7.4.3
Algoritmo de Correção de Erros . . . . . . . . . . . . . . . . . . . . . . . .
57
7.4.4
Interface Real e o Software de Controle . . . . . . . . . . . . . . . . . . . .
59
7.5 Cenário e Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
7.5.1
Reprodução de Movimentos . . . . . . . . . . . . . . . . . . . . . . . . . .
61
7.5.2
Reprodução de Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
7.5.3
Simulação Completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
III Conclusão
7.6 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
R Referências
66
67
69
CAPÍTULO
1
I NTRODUÇÃO
A simulação baseada em agentes tem mostrado seu valor em diversos estudos, criando
modelos para entender e aprimorar a modelagem e a implementação de sistemas alvo.
O processo de validação destas simulações pode ser realizado utilizando uma grande
quantidade de métodos porém, em alguns casos, este pode ser o real desafio no processo
de simulação. A principal dificuldade neste processo é que não há consenso sobre quais
métodos são válidos e quando e onde aplicá-los.
Entre os métodos de validação disponíveis, algumas abordagens ainda não foram
totalmente exploradas. A proposta deste projeto de pesquisa é o estudo e exploração
de uma recente forma de validação onde os agentes virtuais e robóticos interagem em
tempo real, expandindo a percepção obtida nestas simulações e fornecendo novos dados
para melhor compreender e validar o modelo conceitual desenvolvido. Neste contexto,
não só a implementação desta nova abordagem como também a apresentação desta visão
à comunidade científica representa uma significativa contribuição à área de Simulações
Multiagentes.
Entre os desafios que este projeto apresenta destacam-se:
• Definição de modelos conceituais para diferentes técnicas de validação em simulações
multiagentes;
• A comunicação e interação entre simulação multiagentes virtual com a simulação real
robótica.
A integração entre abordagens real e virtual permite simular, entre outros fatores, falhas
não previstas na simulação, fatores difíceis de modelar computacionalmente, margens de
erro e variações aleatórias.
1
1.1. Objetivos do Projeto
2
1.1 Objetivos do Projeto
Este projeto de pesquisa apresenta dois objetivos. O primeiro objetivo refere-se ao
estudo de técnicas de validação em simulação multiagentes, considerando seus aspectos
teóricos e práticos. Uma das formas de validação de uma simulação virtual multiagentes,
e que é considerado com mais ênfase neste trabalho, é o uso de robôs em tempo real.
Com esta relação biunívoca com o agente virtual versus físico é possível analisar como
comportamentos em um ambiente virtual simulado podem ser replicados em um ambiente
real, suas interações e influências, assim como seus efeitos na validação do modelo
conceitual. O segundo objetivo geral está relacionado à implementação de uma simulação
computacional, e posterior validação com robôs em tempo real.
1.2 Principais Contribuições
Este projeto contribuiu na área de simulações multiagentes propondo um método de
validação que envolve os ambientes simulado e real. Com igual importância, considerando
a proposta multidisciplinar da UFABC, mostrou a possibilidade de integração entre as áreas
da computação, robótica e ciências sociais.
1.3 Organização do Texto
Este documento está dividido em três partes: Referencial Teórico, Modelagem Conceitual
e Computacional e Conclusão. O referencial teórico contém quatro capítulos, onde a teoria
de simulações multiagentes, técnicas de verificação e validação, conceitos de robótica e
plataformas de simulação são abordados. A modelagem conceitual e computacional possui
dois capítulos onde o modelo conceitual do experimento e a implementação do mesmo
na plataforma de simulação e robótica são abordados. Finalmente, a conclusão aborda o
resultado geral deste projeto assim como as propostas de trabalhos futuros.
I Referencial Teórico
3
CAPÍTULO
2
S IMULAÇÃO M ULTIAGENTES : C ONCEITOS
F UNDAMENTAIS
Nós somos aquilo que fazemos repetidamente. Excelência, então, não
é um modo de agir, mas um hábito.
—– Aristóteles.
A área de Simulação Multiagentes é formada pela intersecção das áreas de Inteligência
Artificial Distribuída (IAD) e Simulação Computacional. O objetivo dos pesquisadores
em Simulação Multiagentes, quando do uso do arcabouço oferecido pela IAD, é utilizálo na modelagem, implementação e análise de simulações que levem a um melhor
entendimento dos sistemas que estão sendo simulados. Para isto é preciso ter conhecimento
da infraestrutura necessária à construção de Simulação Multiagentes. Entretanto, o que
motiva suas pesquisas é o estudo da simulação e do modelo simulado.
2.1 Modelos de Simulação
Um modelo de simulação é um tipo particular de modelo que também procura
representar um determinado sistema, real ou abstrato. Entretanto, difere dos demais na
medida em que permite:
• Estudar como o sistema modelado se comporta sob determinadas condições;
• Examinar, em variados graus de detalhamento, as conseqüências de alterações
internas no comportamento geral do sistema, e vice-versa.
Os modelos de simulação emergiram como técnica identificável durante a Segunda
Guerra Mundial, quando os métodos denominados Monte Carlo foram usados por John Von
4
2.1. Modelos de Simulação
5
Neumann e Stanislaw Ulam em 1940. Estes pesquisadores associaram a expressão análise
de Monte Carlo a uma técnica matemática utilizada para solucionar certos problemas
de blindagem em reatores nucleares.
Este estudo seria muito caro em uma solução
experimental, ou muito complicada para um tratamento analítico. A análise de Monte
Carlo utiliza ferramentas estatísticas com amostragens aleatórias como método para obter
uma aproximação numérica de problemas complexos, ou seja, simular um comportamento
complexo através de um modelo estatístico. Apesar dos conceitos já serem utilizados
em diversos estudos anteriores, apenas na década de 1940 este método começou a ser
formalizado [Hammersley e Handscomb 1964].
Em [Gilbert e Troitzsch 1999, Ferber 1996], são apresentados alguns objetivos de uma
simulação:
• Descobrir e/ou formalizar novas teorias e modelos;
• Testar hipóteses do sistema modelado;
• Obter um melhor entendimento de algumas características do sistema real;
• Predizer comportamentos e ações futuras;
• Analisar e detectar elementos críticos.
Técnicas e ferramentas de simulação têm sido usadas em diversas áreas. Por exemplo,
pesquisadores da área médica usam ambientes simulados para treinar técnicas de cirurgia,
antes de testar em pacientes reais. Na indústria, projetos de máquinas, processos e produtos
são inicialmente desenvolvidos em ambientes simulados, táticas de guerra podem ser
simuladas em campos de batalha artificiais bem como a simulação de catástrofes, como
vazamento de óleo, queimadas, etc. podem ser analisadas com o uso se simulações. Um
simulador pode ser visto como um laboratório, e uma simulação como um experimento
realizado a partir de um modelo.
A infraestrutura técnico-teórica da área de Simulação Computacional permite capturar
elementos essenciais de um sistema alvo, sem trabalhar diretamente com o mesmo. Esta
característica é importante em situações onde, por exemplo:
• É proibitivo, por ser arriscado ou caro, realizar experiências em situações reais;
• Deseja-se saber os limites de um sistema, sem o risco de destruí-lo;
• O sistema a ser simulado é muito complexo, não havendo modelos analíticos
satisfatórios para sua representação.
Em geral, as variáveis de entrada e de saída são definidas por um modelo que tem como
objetivo estabelecer relações entre estas variáveis (veja Figura 2.1).
2.1. Modelos de Simulação
6
Figura 2.1: Modelo e suas Variáveis.
Ferramentas de simulação permitem ao experimentador estudar a dinâmica de sistemas
de maneira mais ampla, pois a simulação pode ser executada diversas vezes com valores
dos parâmetros modificados entre as execuções. Assim, as alterações nos valores de saída
podem ser analisados, em decorrência dos valores de entrada. A possibilidade de manipular
variáveis durante os experimentos é particularmente útil na área de Ciências Sociais, porque
fatores morais e psicológicos geralmente proíbem ou restringem experimentos com seres
humanos, sistemas e organizações [Berends e Romme 1999].
De forma geral, o desenvolvimento de uma simulação deve levar em consideração duas
características básicas [Berlanga 2003]:
• Definição de um objetivo, uma razão para o desenvolvimento de tal simulação.
Como exemplo tem-se a estimativa do tempo médio de espera de clientes em uma
fila, a estimativa da quantidade de colisões de pacotes em uma rede, análise do
comportamento coletivo em situações de pânico, análise da evolução de normas
sociais, etc;
• Realização de testes para a obtenção de conclusões e validação dos resultados, através
do processo de experimentação.
Figura 2.2: Ciclo de Vida de uma Simulação Computacional.
A Figura 2.2 ilustra um ciclo completo para o desenvolvimento de uma simulação.A
simulação ocorre quando há a transposição de uma parte do sistema alvo para um
2.1. Modelos de Simulação
7
modelo conceitual equivalente, seguido da codificação deste modelo para um modelo
computacional. Tendo como base o sistema alvo e o objetivo da simulação, os modeladores
iniciam a construção do modelo conceitual (passo 1). O objetivo da simulação guia a escolha
de quais partes do sistema alvo serão modelados. O processo de modelagem resulta na
criação do modelo conceitual do sistema alvo (passo 2). Vale ressaltar que as ações de
modelagem devem ser revisadas na medida em que o desenvolvimento do modelo avança.
Antes de ser codificado para uma linguagem de programação, este modelo precisa ser
analisado para determinar se a sua estrutura e funcionamento correspondem ao sistema
alvo. Esta etapa é denominada de validação estática/estrutural (passo 3). Após a validação
estrutural do modelo conceitual, passa-se à modelagem computacional e sua posterior
implementação (passo 4). Logo em seguida, a etapa de verificação objetiva assegurar que
o modelo conceitual foi transcrito corretamente para o ambiente computacional (passo 5).
Após a codificação, o programa é executado (passo 6), e seu funcionamento deve também
passar pela análise de verificação (passo 7). Caso os resultados da execução tenham sido
aprovados na etapa de verificação, a simulação pode ser executada muitas vezes para se
construir uma série de experimentos que permite extrair resultados e conclusões (passo 8).
Este é o passo da validação dinâmica, ou comportamental. O comportamento do programa
é chamado de simulação computacional.
Vale ressaltar que qualquer erro na modelagem e/ou na implementação acarreta em
erros nos resultados obtidos. Da mesma forma, a má definição da série de experimentos
pode conduzir a erros nas conclusões [Berlanga 2003].
Um modelo de simulação, independentemente do formalismo que é expresso, é sempre
composto pelos seguintes elementos:
• Um conjunto de parâmetros;
• Um conjunto de entidades, ou objetos;
• Um conjunto de relacionamentos entre as entidades, que em alguns casos são fixos, e
em outros casos mudam com o tempo;
• Um formalismo bem definido para o tempo.
Existem diferentes formas de utilização de um modelo de simulação, sendo que a
utilidade dos modelos pode ser dividida em duas categorias: exploratórias e preditivas.
A abordagem exploratória procura explorar e gerar teorias e/ou hipóteses. O objetivo
principal não é predizer o comportamento futuro de um sistema, mas sim oferecer um
framework no qual observações passadas podem ser entendidas como parte de um processo
mais amplo. Modelos exploratórios geralmente focam em um aspecto específico de um
sistema, colocando ênfase em alguns detalhes sobre um fenômeno e ignorando outros.
Tal direcionamento objetiva que este laboratório de explorações leve, empiricamente, a
insights relevantes. Estes modelos procuram definir como a realidade deveria ser, ou poderia
2.1. Modelos de Simulação
ser, sob determinadas circunstâncias.
8
Embora modelos exploratórios possam oferecer
insights consideráveis sobre a teoria, é difícil estabelecer se o modelo final é informativo
sobre sistemas específicos do mundo real. Um modelo exploratório poderia produzir uma
explicação candidata para a emergência de padrões observados. Em [Drogoul e Ferber 1994]
há um exemplo de simulação de uma colônia de formigas com objetivos exploratórios do
modelo.
Os modelos de predição são usados para extrapolar tendências, avaliar cenários e
predizer estados futuros. Modelos de predição são designados para fazer uma mímica de
sistemas do mundo real, e são particularmente úteis para o desenvolvimento de cenários e
decisões políticas. Um modelo preditivo para epidemias de dengue é exposto em [Jacintho
et al. 2010], onde diversos parâmetros podem ser aplicados para caracterizar diferentes
cenários para a doença.
2.1.1 Simulação Multiagentes
Modelos de simulação multiagentes são compostos de múltiplos agentes heterogêneos
interagindo entre si, que representam um ou mais comportamentos encontrados no objeto
de estudo. As relações entre agentes podem ser especificadas em uma variedade de formas,
desde uma abordagem reativa até uma abordagem direcionada a atitudes deliberativas por
parte dos componentes da agência. Em ambos os casos as ações dos agentes são decididas e
executadas de forma autônoma. Entretanto, suas ações devem ser sincronizadas, e por isto
é necessário escalonar uma estrutura mínima de eventos objetivando coordenar a execução
do sistema. O comportamento dos agentes pode ser escalonado para ser síncrono ou
assíncrono. No comportamento síncrono, a ação dos agentes é disparada pelo ciclo de
tempo discreto, ou seja, a cada ciclo os agentes recebem suas entradas e determinam suas
ações para o próximo ciclo. Já no comportamento assíncrono, as ações dos agentes são
escalonadas pela ação dos outros agentes e/ou em referência a um relógio, ou seja, o agente
não precisa esperar pelo sincronismo do relógio para realizar sua ação.
A seguir mostra-se uma lista não exaustiva de condições, onde modelos baseados em
agentes são úteis para capturar o comportamento emergente:
• A interação entre os agentes é não linear, descontínua. Isto pode ser particularmente
útil se a descrição de descontinuidade do comportamento individual é difícil, por
exemplo, usando equações diferenciais;
• A necessidade de designar uma população heterogênea de agentes é significativa. A
heterogeneidade permite especificar agentes com diferentes tipos de racionalidade e
comportamento;
• A topologia das interações entre agentes é heterogênea e complexa.
Isto é
particularmente importante para processos sociais, devido a questões das redes físicas
e sociais.
2.1. Modelos de Simulação
9
Dentre as vantagens do uso de uma abordagem baseada em agentes citam-se:
• Captura de fenômenos emergentes;
• Oferecimento de um ambiente adequado para o estudo de certos sistemas.
O fenômeno da emergência é caracterizado por padrões estáveis macroscópicos,
surgindo de interações locais entre indivíduos. Por definição o fenômeno emergente não
pode ser reduzido às partes que o compõe, ou seja, o todo é maior que a soma de suas partes.
As interações dos agentes dão origem a este comportamento emergente, característica
marcante em diversas áreas de estudo. Nas Ciências Sociais, por exemplo, a complexidade
e diversidade do comportamento humano, tem como alvo de estudo este comportamento
emergente que denota a formação de grupos e comportamentos sociais derivados da
interação entre os indivíduos.
O conceito da abordagem bottom-up é uma das bases da Simulação Multiagentes.
A idéia de modelagem ascendente é essencial para modelar sistemas complexos1 , já
que uma abordagem descendente é inviável devido ao grande número de interações
e comportamentos coletivos possíveis.
Esta abordagem permite que elementos que
constituem estes tipos de sistema possam ter seus comportamentos individuais modelados
de forma mais simples.
2.1.2 Áreas da Simulação Multiagentes
Em [David et al. 2004] tem-se uma proposta de classificação hierárquica dos modelos de
Simulação Multiagentes em classes, conforme ilustrado na Figura 2.3.
Figura 2.3: Classificação Hierárquica dos Modelos de Simulação Multiagentes [David et al. 2004].
1 Um sistema complexo pode ser entendido como um sistema composto por um número geralmente grande de
elementos, processos ou agentes interagindo, produzindo comportamentos coletivos não-lineares [Richards, Richards
e Mckay 1998], ou seja, as propriedades colectivas do sistema composto não estão relacionadas diretamente com as
propriedades dos seus elementos individuais [Dilão 1995].
2.1. Modelos de Simulação
10
Para este projeto, o foco de interesse está voltado para os modelos do tipo sóciocognitivo. Tais modelos são geralmente baseados na representação dos agentes e das
estruturas sociais de acordo com uma teoria específica. A simulação tem a finalidade de
verificar a consistência das teorias e de refinar as mesmas.
Sócio-Técnico
Servindo de arcabouço para os modelos, esta classe abrange o esforço interdisciplinar
entre a Ciência da Computação e as demais áreas do saber, sob um paradigma de integração
e de sistema complexo. Aqui as teorias baseadas em agentes são mais freqüentemente
transferidas entre diferentes domínios. A partir desta classe, tem-se duas grandes áreas
possíveis: sócio-analítico e tecnológico-analítico.
Sócio-Analítico
Esta classe combina modelos sócio-científicos com o caráter exploratório de modelos
sociais artificiais.
Sócio-Científico
Este modelo utiliza fundamentos teóricos de ciências sociais e/ou ciências ambientais
para modelar os fenômenos considerados. Os sistemas alvo são diretamente observáveis ou
há alguma evidência significativa de sua existência. Duas sub-áreas são evidentes: sóciocognitivos e sócio-concreto.
Sócio-Cognitivo
Neste modelo as simulações estão voltadas para uma visão mais formal e abstrata,
procurando construir e representar fundamentos da teoria social. Os problemas tratados
correspondem à descoberta, formalização e teste de teorias, modelos e hipóteses
relacionados a aspectos teórico-estruturais de sistemas sociais.
Assim, o objeto de
estudo corresponde à lógica estrutural do sistema alvo, analisando questões como o
estabelecimento de normas sociais [Conte e Castelfranchi 1995] e coalizões [David, Sichman
e Coelho 2001]. Em [R. e J. 1995] há o exemplo do sistema DEPNET, baseado na Teoria da
Dependência e Poder Social. Os autores exploram um mecanismo de raciocínio social onde
os agentes consideram seus objetivos e a suposição dos objetivos dos outros agentes para
sua tomada de decisão.
Sócio-Concreto
Neste caso, as simulações estão voltadas a uma visão mais pragmática da experimentação,
enfatizando a análise e a representação de modelos e processos sociais já existentes. Esta
abordagem não trata da construção de estruturas teóricas de sistemas sociais.
Antes,
utiliza-se modelos teóricos já existentes na modelagem de processos sociais e institucionais.
Esta abordagem procura obter um melhor entendimento de fenômenos sociais atuais,
2.1. Modelos de Simulação
11
ou para os quais haja evidências de sua existência. Dentre os fenômenos sociais temse o desenvolvimento de características culturais e efeitos de mudanças em estruturas
organizacionais. Em [S. et al. 1999] o objetivo do estudo é a civilização pré-histórica de
Kayenta Anasakii onde há dados concretos para validar a simulação, ou seja, a intenção é
confrontar os resultados da simulação com informações arqueológicas.
Tecnológico-Analítico
Esta classe aumenta a extensão da Prototipação para Resolução com a influência
exploratória de modelos sociais artificiais. O caráter abstrato alto e a validação estruturalfraca de sociedades artificiais dão lugar a níveis intermediários de abstração com validação
estrutural-forte aos modelos.
Social Artificial
Os sistemas alvo da área de análise de sociedades artificiais não se restringem a modelos
reais de sociedades e de ambientes físicos, permitindo ao pesquisador abstrair a priori
quaisquer relações físicas, sociais, psicológicas e econômicas usualmente conhecidas e
adotadas. Entretanto, esta abstração deve estar condicionada a teorias e hipóteses que
direcionem a construção do modelo conceitual da simulação. Isto porque sociedades
artificiais são modeladas e implementadas objetivando responder questões específicas, bem
como explorar fenômenos particulares. Em [Lovelock 1992], há um exemplo de modelo
sócio-científico onde é simulado o comportamento de auto-regulação de uma população de
flores, porém, com alto nível de abstração, já que Daisyworld (contextualizado no estudo) é
um planeta imaginário e consequentemente os resultados da simulação são confrontados
com uma estrutura idealizada de um mundo imaginário.
Prototipação para Resolução
Os sistemas alvo desta subárea são sistemas reais aonde agentes, humanos ou
não, interagem com ambientes reais tais como construções inteligentes e fenômenos
naturais.
Mesmo havendo testes de hipóteses e teorias, bem como alcançando um
melhor entendimento dos sistemas alvo, os objetivos principais destas simulações são
eminentemente práticos. São eles:
• Avaliação dos sistemas modelados, para posterior aplicação real;
• Treinamento de futuros usuários do sistema;
• Suporte à tomada de decisão, enfatizando predição de comportamentos e de ações
futuras.
Um exemplo de prototipação para resolução é um sistema simulado de tráfego [hadouaj,
Drogoul e ESPIÉ 2001], onde o comportamento do motorista humano é modelado para obter
um desempenho o mais próximo possível de uma situação de tráfego real. Outro exemplo é
2.1. Modelos de Simulação
12
a implementação de comportamentos em robôs que jogam futebol (RoboCup - [RoboCup
World Championship and Conference 2010]). A RoboCup é uma iniciativa internacional
de pesquisa para promover a pesquisa robótica e inteligência artificial, definindo um
problema padrão onde tecnologias de design, agentes autônomos, colaboração multiagente,
estratégia, robótica, etc. são aplicados na solução. Sob a mesma iniciativa, a RoboCup
Rescue [RoboCup Rescue World Championship and Conference 2010] fomenta a aplicação
destas mesmas tecnologias na solução de problemas de resgate e salvamento, onde agentes
robóticos estão cada vez mais presentes. A Figura 2.4 mostra um exemplo de aplicação
na categoria Standard Platform League da RoboCup.
A Figura 2.5 mostra a imagem
do simulador utilizado na categoria Soccer Simulation da RoboCup. Tanto na categoria
humanoide como na categoria de simulação os conceitos de modelagem multiagentes estão
presentes.
Figura 2.4: Exemplo do Futebol de Robôs [RoboCup World Championship and Conference 2010].
Figura 2.5: Imagem de um Simulador para RoboCup [Simulador RoboCup 2010].
CAPÍTULO
3
V ERIFICAÇÃO E VALIDAÇÃO EM S IMULAÇÕES
M ULTIAGENTES
Eu não procuro saber as respostas, procuro compreender as perguntas.
—– Confúcio.
A credibilidade e conseqüente aceitação de um modelo conceitual modelado computacionalmente é atestada através de duas metodologias: a verificação e a validação. Verificação
é definida em [Arthur e Nance 1996] em termos de Engenharia de software, atestando a
qualidade do software implementado. Já a validação atesta o resultado final do trabalho,
avaliando a sua correspondência com os resultados esperados e/ou objeto de estudo.
Nas próximas seções estes processos são discutidos, definindo o momento e a forma
de aplicação de cada um deles. Neste capítulo a ênfase é na validação que é o foco deste
trabalho.
3.1 Verificação
[Caughlin 2000] define a verificação como um processo que determina se a implementação
do modelo feita pelo desenvolvedor representa com precisão a descrição conceitual e suas
especificações. O processo de verificação é tratado pela teoria como um ou mais passos
no processo de Engenharia de software, assim como o levantamento de requisitos, análise,
modelagem, etc.
A metodologia utilizada segue as mesmas diretrizes dos diversos modelos de processos
de desenvolvimento, como cascata, evolucional, prototipação, espiral, RAD, etc.
Além do processo de Engenharia de software envolvido no desenvolvimento, [Sargent
1999] considera a linguagem de programação utilizada como um fator de incremento
13
3.2. Validação
14
na possibilidade de erros de verificação. O uso de linguagens específicas na simulação
em oposição às linguagens de programação de alto nível diminui consideravelmente a
quantidade de erros nesta fase do processo. Em geral, o processo de verificação pode ser
dividido em duas abordagens: testes estáticos e dinâmicos [Sargent 1999].
Testes Estáticos: Depuração de erros utilizando técnicas como walk-throughs, teste de
mesa, testes de caixa branca, etc.
Testes Dinâmicos: Instâncias dos dados são fornecidas ao software e os resultados obtidos
são examinados durante todo o processo de execução. As técnicas utilizadas são de
cross-validation, relação de entrada/saída, traces, etc.
O crescente número de variáveis presentes nas simulações pode representar um
obstáculo no processo de verificação, aumentando o esforço necessário nesta fase de
desenvolvimento. Uma abordagem comum é a escolha de variáveis-chave no processo de
verificação. O sucesso neste processo é crucial para a validação do modelo conceitual,
atestando que a teoria foi corretamente aplicada na modelagem do agente.
3.2 Validação
[Arthur e Nance 1996] definem a validação como um processo que comprove se o
comportamento de um modelo ou software está em conformidade com os requisitos
especificados. No domínio das modelagens e simulações, tais requisitos são derivados dos
objetos de estudo da simulação. Esta abordagem mostra uma tendência em validar um
modelo utilizando as mesmas técnicas de Engenharia de software, onde os requisitos são
confrontados com os dados obtidos de forma rigorosa, o que requer uma especificação de
requisitos também rigorosa.
Em [Caughlin 2000], a validação é determinada pelo grau que o modelo representa o
mundo real ou o objeto de estudo. Esta abordagem é mais abrangente, já que engloba
modelos onde os requisitos não são definidos e portanto não podem ser confrontados
no processo de validação. Em [Katerelos e Koulouris 2004] há um exemplo de simulação
de investidores tímidos e arrojados no mercado financeiro, onde os requisitos são
contraditórios, portanto não podem ser confrontados. Neste caso, a busca pelo equilíbrio
é o requisito a ser avaliado.
3.2.1 Validação Estática
A validação estática procura analisar se: as teorias sobre o modelo são válidas, a
representação lógica, matemática e as relações de causa e efeito são adequadas ao propósito
da simulação. Nesta fase, as técnicas de validação de face, análise matemática, estatística,
técnicas de indução lógica, etc. são aplicadas ao modelo conceitual para verificar a correta
relação destes efeitos com os dados do sistema real. Esta série de métodos e técnicas é
3.2. Validação
15
aplicada em cada um dos sub-modelos que compõe a simulação até que o modelo global
seja atingido.
A modelagem incorreta implica na revisão do modelo como um todo, já que o modelo
conceitual é a base de toda a simulação. Feita a correção, o processo de validação do modelo
é realizado novamente.
3.2.2 Validação Dinâmica
Na validação dinâmica/comportamental, a preocupação está em avaliar o comportamento do modelo em produção, observando a precisão do mesmo em relação à finalidade
e aplicabilidade pretendida. Este é o ponto de encontro entre todas as abordagens de
validação incluindo o processo de verificação. O fracasso neste ponto pode ser devido à um
modelo conceitual incorreto, erros de programação, precisão numérica, dados inválidos, etc.
3.2.3 Técnicas de Validação
Algumas técnicas de validação são propostas em [Sargent 1999] e são apresentadas aqui
em três grupos: visuais, estatísticas e comparativas.
3.2.3.1 Técnicas Visuais
Neste grupo a avaliação da simulação é realizada pela observação do comportamento e
dos dados produzidos durante a simulação.
Animação
Quando o comportamento do modelo pode ser demonstrado através de movimentos,
estes podem ser avaliados de forma similar ao mundo real. Como exemplo, o movimento
de formigas, de carros em trânsito, de pessoas em uma situação de pânico, etc. Em [França
2010], um modelo de pânico em multidões em um incêndio é apresentado. A movimentação
dos agentes representam estas pessoas durante o incêndio, sendo um dos itens avaliados
durante o processo de validação do modelo proposto. A Figura 3.1 mostra a visualização
gráfica da simulação proposta em [França 2010], com os agentes que representam as pessoas
dirigindo-se para a saída do ambiente onde está ocorrendo um incêndio.
3.2. Validação
16
Figura 3.1: Movimentação dos Agentes em Direção à Saída Formando um Arco [França 2010].
Validação de Eventos
A ocorrência de determinados eventos em uma simulação é comparada à mesma
ocorrência destes eventos no mundo real. Em uma simulação de trânsito, a ocorrência de
acidentes representa um evento inerente ao cenário real e simulado.
Validação Preditiva
Os modelos preditivos são utilizados para prever a ocorrência de determinados
fenômenos ou eventos, baseado em premissas bem estabelecidas. A correspondência destas
predições são avaliadas para atestar a validade do modelo.
Comparação Gráfica dos Dados
Os dados obtidos durante a simulação podem ser representados graficamente em várias
condições experimentais, objetivando determinar se o comportamento do modelo tem uma
precisão suficiente para a sua finalidade. Estes gráficos podem ser usados na validação do
modelo de maneira diferente. De forma similar ao método da animação, a apreciação dos
dados obtidos na simulação, suas tendências e similaridades com o sistema real podem
demonstrar a validade do modelo proposto.
Em [Gou 2006] é proposto um modelo de simulação do mercado financeiro utilizando
simulação multiagentes e teoria de jogos. Os resultados foram confrontados graficamente
com o índice Shanghai. O primeiro gráfico da Figura 3.2 mostra o comportamento da bolsa
de valores em comparação com gráfico produzido na simulação (segundo gráfico na Figura
3.2). O emparelhamento do gráfico não é exato mas mostra um comportamento similar em
alguns momentos, quando ocorrem quedas ou altas bruscas no índice.
3.2. Validação
17
Figura 3.2: Comparação Gráfica com o Índice Shanghai (a) e os Dados da Simulação (b) [Gou 2006].
3.2.3.2 Técnicas Estatísticas
Neste grupo, a aplicação de técnicas matemáticas e estatísticas nos resultados
produzidos pela simulação são utilizados para a validação da mesma.
Intervalos de Confiança
Para cada condição experimental são obtidos intervalos de confiança pelas diferenças
entre as médias, variâncias e distribuições de diferentes variáveis de saída do sistema. Tratase de um tratamento estatístico onde os valores obtidos possuem intervalos de variação bem
estabelecidos. O conhecimento estatístico, incluído também na modelagem conceitual,
permite estabelecer o grau de confiança no modelo, assim como estabelecer curvas de
tradeoff para escolha de valores adequados para os parâmetros.
Teste de Hipótese
O teste de hipótese é realizado através da definição de uma hipótese. Por exemplo, é
considerada verdadeira a hipótese de que o modelo é válido, ou seja, a partir desta hipótese,
os dados do modelo são comparados com os dados do sistema real e/ou intervalos de
confiança. Há a possibilidade de ocorrência de dois tipos de erros: rejeitar a validade de
um modelo válido ou aceitar a validade de um modelo inválido. O tratamento probabilístico
da ocorrência destes erros podem atestar, ou não, a validade do modelo. Em [Heppenstall,
Evans e Birkin 2006] um sistema de análise do mercado varejista é avaliado utilizando a
hipótese de que a lucratividade de um ponto de venda não representa sucesso. A avaliação
desta hipótese pelo teste Wilcoxon signed-rank [Wilcoxon 1945] mostra uma probabilidade
3.2. Validação
18
quase nula desta hipótese ser verdadeira, confirmando a validade do modelo proposto.
Análise da Sensibilidade à Variação de Parâmetros
As mudanças impostas às variáveis de entrada e parâmetros internos de uma simulação
devem ser similares aos efeitos no sistema real exposto às mesmas imposições. Não só a
ocorrência das mudanças, como também seus efeitos quantitativos devem ser avaliados.
Métodos Históricos
Três métodos são utilizados nesta ferramenta: racionalismo, empirismo e economia
positiva. No racionalismo, as premissas são consideradas verdadeiras e deduções lógicas
são utilizadas na validação do modelo. O empirismo exige que os resultados obtidos sejam
comparados com dados empíricos para a validação do modelo. A economia positiva trata de
modelos capazes de prever tendências, não se preocupando com os mecanismos utilizados
e as relações de causalidade do mesmo. Em outra abordagem, pode-se utilizar o método de
validação multi-estágio, onde é aplicado de forma sistemática os métodos históricos durante
o processo de modelagem, execução e validação comparando a relação entre os dados de
entrada/saída com os dados do sistema real.
Validação Interna
Várias repetições de uma simulação são feitas para determinar a variabilidade estocástica
do modelo. Uma grande variabilidade demonstra falta de coerência no modelo, tornando
seus resultados questionáveis. Se isso não representa um comportamento típico da sistema
real, o modelo conceitual é questionado.
Validação com Dados Históricos
Nesta abordagem, os dados obtidos pela simulação são comparados a dados existentes
durante os testes do modelo proposto. A forma mais comum é a utilização de uma parte
destes dados para a criação do modelo, e outra parte para estabelecer a validade do mesmo.
3.2.3.3 Técnicas Comparativas
As técnicas comparativas utilizam outros modelos e/ou padrões já atestados para a
avaliação dos dados produzidos pela simulação.
Comparação com Outros Modelos
No caso da existência de outros modelos já validados, os dados obtidos na simulação
podem ser comparados aos obtidos em outros estudos para validar os mesmos. Há também
casos onde diferentes abordagens são comparadas com dados de modelos analíticos,
reforçando ainda mais a validade do modelo proposto.
3.3. Validação Sócio-Cognitiva
19
Validade de Face
Esta técnica utiliza o conhecimento e opinião do especialista na área de conhecimento
do modelo para indicar se o comportamento e a modelagem são razoáveis. São avaliados
o modelo conceitual, seu comportamento, a relação de entrada/saída de dados, etc. Em
[Pahl-Wostl e Ebenhöh 2004] um modelo de simulação de dinâmica econômica/social é
proposto e sua avaliação é feita por especialistas, já que a modelagem foi feita com um maior
embasamento nos dados do que na teoria.
Seguidores (Traces)
Durante a simulação, o acompanhamento de determinadas variáveis ao longo do tempo
e a correspondência de seu comportamento com a lógica do modelo conceitual determinam
a validade do modelo.
Testes Degenerados
A escolha de valores adequados para a entrada de uma simulação pode demonstrar um
comportamento degenerado predito na modelagem. A correspondência entre o modelo
conceitual e o sistema real nestas situações é avaliada nesta abordagem. Uma abordagem
semelhante é a aplicação de padrões, ou constantes que implicam na obtenção de resultados
preditos que servem como ferramenta de validação para a simulação.
Testes em Condições Extremas
Da mesma forma que os eventos, condições extremas ocorrem, e podem ser avaliadas,
tanto no mundo real como nas simulações. A super-população de um formigueiro deve ter
as mesmas consequências no mundo real e na simulação. Para provocar estas condições, em
muitos casos é necessária a escolha apropriada das variáveis de entrada e dos parâmetros
internos, da mesma forma que os testes degenerados.
3.3 Validação Sócio-Cognitiva
De forma geral as simulações são vistas sob a mesma luz das teorias científicas em geral.
Por conseguinte, o problema da validação é debatido utilizando as posições clássicas da
filosofia e da ciência para a confirmação das teorias. Segundo [Küppers e Lenhard 2005],
esta estratégia não se aplica às ciências sociais, onde descobrir as regras que geram padrões
geralmente é o principal objetivo.
Nos modelos sócio-cognitivos o conhecimento produzido parece ser válido se algumas
das características da dinâmica social, conhecidas através de teorias relacionadas ao mundo
social modelado, são reproduzidas pela simulação. Neste caso, a simulação pode ser vista
como uma prova para as premissas básicas do modelo conceitual [Küppers e Lenhard 2005].
3.3. Validação Sócio-Cognitiva
20
A credibilidade obtida por estas simulações é fortemente dependente dos objetivos da
simulação. É difícil definir um ou mais métodos para o tratamento destes tipos de validação,
pois os objetivos podem ter uma abrangência muito grande. De acordo com [Schmid 2005],
as simulações são usadas para conhecer e captar a complexidade. Por exemplo, em uma
simulação de pânico em multidões, se o objetivo é validar se uma pessoa procura sair de
um ambiente perigoso, o fato da simulação mostrar as pessoas saindo do ambiente auxilia
a validar o modelo [França 2010]. Se o objetivo for avaliar o comportamento destas pessoas
neste ambiente, as observações feitas podem não ser compatíveis com a realidade, se
considerada a impossibilidade de obter uma informação factual sobre este comportamento
tornando assim o processo de validação bem mais complexo.
[Moss 2008] defende que o melhor que se pode fazer na tentativa de validar um modelo
é comparar os resultados da simulação com os dados disponíveis. Uma alternativa é a
participação de stakeholders no processo de modelagem, usando suas percepções a respeito
do objeto de estudo. Esta abordagem utiliza o ponto de vista destes stakeholders como base
no processo de validação.
[Windrum, Fagiolo e Moneta 2007] coloca, sob o ponto de vista das ciências econômicas,
a questão da relação problemática entre os resultados obtidos e os dados empíricos. Neste
ponto a validação empírica de um modelo envolve a avaliação da representação de um
processo desconhecido e um conjunto de dados gerados. A questão levantada é qual a
base metodológica para o processo de validação empírica, e se este processo é específico
ou genérico para todas as modelagem. As três abordagens mais influentes na literatura são
a calibração indireta, a calibração empírica e a similaridade histórica.
Calibração Indireta
Como o próprio nome sugere, a abordagem da calibração indireta executa primeiro
a validação e, em seguida, indiretamente calibra o modelo, centrando o mesmo nos
parâmetros que são consistentes na validação de saída. Na primeira etapa identifica-se
um conjunto de fatos de interesse para sua reprodução ou estudo, tipicamente no nível
macro como por exemplo o relacionamento entre as taxas de desemprego e o crescimento
do PIB. Na segunda etapa, juntamente com as normas do procedimento de calibração
empírica, o pesquisador constrói o modelo mantendo a descrição micro tão próximo quanto
possível das empíricas sobre o seu comportamento e suas interações. Na terceira etapa, as
evidências empíricas são usadas para restringir o espaço de parâmetros. Finalmente, novos
comportamentos e fatos são identificados para uma possível validação.
Calibração Empírica
Proposta por [Brenner e Werker 2004], a calibração empírica de modelos é um processo
realizado em três etapas. A principal diferença do método de calibração indireta é que
busca-se parâmetros empíricos diretamente para calibrar o modelo. A primeira etapa
consiste em utilizar o conhecimento existente para calibrar as condições iniciais do
3.3. Validação Sócio-Cognitiva
21
modelo assim como os intervalos dos parâmetros. [Brenner e Werker 2004] propõem que
as tolerâncias devem ser maiores para os parâmetros onde há pouco ou nenhum dado
confiável. A segunda etapa envolve a validação empírica dos resultados para cada um dos
parâmetros especificados na primeira etapa, atribuindo uma probabilidade de ser aceito,
com base no percentual de "realizações teóricas"que são compatíveis com cada "percepção
empírica". Finalmente é feita uma nova etapa de calibração recorrendo muitas vezes à
inferência de peritos e/ou historiadores sobre os artefatos obtidos na simulação.
Similaridade Histórica
A similaridade histórica oferece uma solução alternativa para o problema do excesso de
parametrização, comparada com outras abordagens que enfatizam o concreto. A diferença
fundamental é que essa abordagem usa estudos específicos, casos históricos, as interações
dos agentes e as suas regras de decisão. Os modelos são construídos sobre dados disponíveis
a partir de estudos detalhados e evidências históricas sobre o objeto de estudo. Finalmente,
os dados fornecidos pela simulação são rastreados e comparados com os dados históricos
para determinar a sua similaridade. No caso de divergência destes dados, deve ser realizado
um novo estudo, afim de rejeitar o modelo ou determinar novas teorias.
A análise destes métodos mostra uma grande similaridade com os métodos propostos na
Seção 3.2.3. A similaridade histórica é a validação com dados históricos, a calibração indireta
pode ser comparada com os testes degenerados associados a intervalos de confiança, etc.
mas há um ponto em comum nos estudos realizados em simulações sócio-cognitivas: a
utilização de dados ou modelos históricos para atestar a validade do modelo proposto.
CAPÍTULO
4
R OBÓTICA : C ONCEITOS F UNDAMENTAIS
Não basta ensinar ao homem uma especialidade, porque se tornará
assim uma máquina utilizável e não uma personalidade. É necessário
que adquira um sentimento, um senso prático daquilo que vale a pena
ser empreendido, daquilo que é belo, do que é moralmente correto.
—– Albert Einstein.
A Robótica, de acordo com [Rosário 2005], surge como um ramo tecnológico a partir
do início do século XX, relacionada à demanda pelo aumento da produtividade industrial.
Em 1940, o escritor norte-americano Isaac Asimov [Asimov] cria em suas obras de ficção a
cultura e a ética robótica para a convivência pacífica com humanos.
A história da Robótica [Robotics Laboratory 2010] porém remonta a Grécia onde por volta
do ano 350 A.C. o matemático Archytas de Tarentum criou um pássaro mecânico movido
a vapor voltado ao estudo do vôo. Os gregos utilizaram conceitos de automação, com as
tecnologias disponíveis, em relógios, peças teatrais e até mesmo em cerimônias religiosas.
Em 1495, Leonardo Da Vinci cria uma espécie de armadura que realiza movimentos
imitando as ações de um cavaleiro. Na França de 1738, Jacques de Vaucanson constrói três
autômatos: o primeiro era um flautista capaz de tocar doze canções. O segundo podia tocar
a flauta ou um tambor. Finalmente o terceiro, na tentativa de reproduzir a anatomia humana
e/ou animal, foi criado um pato que se movia, batia as asas, produzia ruídos imitando o
pato real e mastigava alimentos. Em 1959, Devol e Joseph F. Engelberger, considerados
pais da Robótica moderna, desenvolveram a primeira aplicação industrial utilizando um
robô, diferindo das outras automações industriais pela possibilidade de ser modificado e
re-programado para outras aplicações, muito semelhante ao conceito atual do mesmo. Em
1961, Heinrich Ernst desenvolveu no Instituto de Tecnologia de Massachusetts (MIT) o MH1, uma mão mecânica controlada por um computador. Na indústria, foi introduzido em
22
4.1. Sistema Mecatrônico
23
1962 o primeiro braço robótico industrial chamado Unimate que foi utilizado para executar
tarefas repetitivas ou perigosas em uma linha de montagem da General Motors.
Apesar de ter sido fortemente fomentado pela necessidade da automação nas indústrias,
as aplicações científicas para os robôs são de extrema importância. Desde a manipulação
de equipamentos perigosos, substâncias tóxicas e ambientes hostis até a reprodução de
comportamentos naturais ou não. Este último deve ser considerado neste trabalho, já que
o comportamento e suas conseqüências pode ser considerado útil na validação de uma
simulação multiagentes.
4.1 Sistema Mecatrônico
[Rosário 2005] define um sistema mecatrônico como um sistema mecânico que é
impulsionado por atuadores. Este sistema coleta informações do meio físico por intermédio
de sensores, os quais fornecem informações a algoritmos que determinam ações para os
atuadores. A linha pontilhada na Figura 4.1 determina a fronteira entre as grandes áreas da
ciência envolvidas na Robótica. A Mecânica concentrando-se no canto superior esquerdo,
a Computação no canto inferior direito e a Eletrônica na fronteira entre essas duas áreas.
Estas três áreas possuem seus respectivos papéis na Robótica, com igual peso, já que uma
boa mecânica não tem valor sem uma eletrônica adequada, assim como um bom algoritmo
não pode ser colocado em prática em um sistema mecânico ruim. Neste ponto, a simulação
tem seu valor como ferramenta para elaborar bons algoritmos sem vínculo direto com a
plataforma mecatrônica.
Figura 4.1: Sistema Mecatrônico [Rosário 2005].
4.1.1 Sistema Mecânico
Segundo [Rosário 2005], o sistema mecânico é concebido por meio dos conhecimentos
básicos de engenharia mecânica, como cinemática, dinâmica, resistência de materiais
e ciência de materiais. O sistema mecânico deste projeto é definido a partir de suas
necessidades definindo formas geométricas e como estas formas interagem entre si e
4.1. Sistema Mecatrônico
24
com o meio onde o projeto estará inserido, assim como o material empregado em cada
componente, considerando seus aspectos estruturais, físico e químicos.
4.1.2 Atuadores e Sensores
Antes de definir o que é um atuador ou um sensor, se faz necessário definir o que é um
transdutor. Um transdutor, neste contexto, é um elemento que converte um tipo de energia
em outro. Pode-se citar como exemplo, um dispositivo que transforma energia térmica em
energia elétrica, da mesma forma que a transformação de energia mecânica em elétrica, a
energia elétrica em mecânica, etc. Um sensor pode ser definido como o conjunto de um ou
mais transdutores que, utilizando esta característica de transformação, obtém informações
térmicas, magnéticas, mecânicas, químicas, etc. e as transformam em sinais elétricos.
A escolha do tipo de sensor está diretamente ligada ao tipo de grandeza física a ser
medida, além do tipo de resposta deste sensor. Estas respostas podem ser analógicas,
digitais ou binárias [Rosário 2005]. A analógica está em uma faixa de valores, onde há
uma relação não discreta entre o valor elétrico e o valor correspondente da grandeza que
é medida. A resposta digital é aquela onde os valores são discretos, ou seja, uma quantidade
de possíveis valores finitos. Uma analogia entre respostas analógicas e digitais pode ser feita
à números reais e inteiros. Por fim, a resposta binária é aquela definida entre dois valores
possíveis, o 0 e o 1.
A escolha do sensor apropriado para cada sistema projetado é determinado também pela
precisão, resolução, escala e confiabilidade requerida pela aplicação. A precisão representa
o quanto a informação fornecida pelo sensor é divergente do valor real da grandeza medida.
A resolução, que está intimamente ligada ao tipo de resposta do sensor, determina a
quantidade de valores da grandeza que podem ser identificados unicamente. A escala
representa o domínio de valores da grandeza a ser medida. Finalmente, a confiabilidade
atesta todas estas características.
Tomando como base a idéia do transdutor, o atuador converte um sinal em um
movimento, ou seja, transforma um tipo de energia em outro. De forma mais restrita, na
mecatrônica os atuadores convertem energia elétrica em movimento mecânico. Mesmo em
sistemas onde tem-se atuadores hidráulicos/pneumáticos (converte a força de um fluído em
um movimento), existe a ação de atuadores elétricos para direcionar estes fluídos.
No contexto da mecatrônica, a evolução destes elementos afim de torná-los mais
acessíveis e modulares, surgem os servomecanismos que agregam atuadores, sensores,
sistemas mecânicos e eletrônicos. O conceito do servomecanismo é agregar estes elementos
simplificando a modelagem mecânica e eletrônica, através da associação destas tecnologias
criando uma espécie de "serviço", ou seja, não importa o que acontece em seu interior, basta
saber que o movimento ordenado foi executado. A Figura 4.2 mostra um servomecanismo
típico, onde encontra-se um motor, um sensor de ângulo de rotação e um conjunto de
engrenagens para redução de velocidade/aumento de potência.
4.1. Sistema Mecatrônico
25
Figura 4.2: Servomecanismo [Servomecanismo 2010].
Para utilizar este tipo de servomecanismo, basta fornecer uma tensão elétrica para
alimentar os circuitos e o motor. Através de um sinal digital, o ângulo de rotação desejado é
informado ao servomecanismo. Este sistema se encarrega de posicionar seu eixo na posição
informada, assim como mantê-lo nesta posição mesmo que seu eixo seja deslocado para
outra posição por uma força externa.
4.1.3 Elementos de Computação na Mecatrônica
Utilizando a definição formal de computação como base, onde o problema envolve as
entradas, os algoritmos e as saídas. No contexto do sistema mecatrônico, a computação
toma como entrada a leitura de seus sensores e como saída a ação de seus atuadores.
A Figura 4.3 mostra a interação entre estes elementos, assim como a realimentação, que
consiste na avaliação do resultado instantâneo da ação dos atuadores permitindo a correção
e/ou validação do movimento desejado, presente na maioria dos sistemas robóticos.
Figura 4.3: Sistema Computacional no Contexto Mecatrônico.
Considerando um nível de abstração mais alto, a função da computação no sistema
mecatrônico é a tomada de decisão, ou seja, qual a decisão que deve ser tomada para
atingir um determinado objetivo. Várias abordagens podem ser consideradas, por exemplo
4.2. Simulação Robótica
26
sistemas especialistas, aprendizado de máquina, algoritmos de busca, redes neurais
artificiais, entre outras.
A implementação deste aparato computacional pode ser realizada através da eletrônica
analógica/digital pura, eletrônica digital reconfigurável ou sistemas baseados em software.
A eletrônica analógica/digital é utilizada em sistemas mais simples, onde a função é bem
definida. A eletrônica digital reconfigurável é utilizada para a criação de protótipos onde o
grau de complexidade é maior em sistemas dedicados. Os sistemas baseados em software
permitem a criação de sistemas com alto grau de complexidade em sistemas dedicados ou
não facilitando a interação com outros sistemas computacionais. Uma forma de determinar
qual abordagem deve ser utilizada é avaliar o quanto e de que forma a informação recebida
na entrada do sistema é manipulada e considerada para determinar a saída.
4.2 Simulação Robótica
O uso de simuladores na Robótica ocorre em dois momentos: no projeto mecânico, com
o uso de softwares CAD/CAM
1
e na simulação do software que mostra a movimentação
a mecânica. Em cada estágio, diferentes aspectos são avaliados e seus resultados podem
modificar o projeto mecânico ou a concepção do software. A simulação mecânica utiliza as
teorias da Física Estática, Dinâmica, Resistência de Materiais, Mecânica de Fluídos, entre
outras para avaliar se o design mecânico responde aos requisitos do projeto, definindo
também a modelagem do software de acordo com seus resultados. Este processo utiliza na
maioria dos casos uma abordagem puramente analítica. Neste tipo de simulação é possível
utilizar os recursos de CAM para a manufatura das peças utilizadas na montagem do robô.
A Figura 4.4 mostra um braço robótico para uso industrial em um simulador dedicado.
Figura 4.4: Simulação do Projeto Mecânico de um Braço Robótico [RobotMaster 2010].
1 Acrônimo de Computer Aided Desing - Projeto Assistido por Computador e Computer Aided Manufacturing -
Fabricação Assistida por Computador.
4.3. Validação Robótica
27
Na simulação do software, o uso de frameworks específicos permitem a criação de um
modelo tridimensional abstrato do projeto mecânico que permite avaliar o comportamento
do software sob vários cenários. Um exemplo ilustrado na Figura 4.5 é o MoRoS3D [Colon,
Sahli e Baudoin 2006] que é um framework para simulação voltado para a Robótica baseado
no padrão CORBA2 .
Figura 4.5: Simulação de um Robô em em Ambiente Externo [Colon, Sahli e Baudoin 2006].
4.3 Validação Robótica
A validação na área robótica acontece durante o processo de implementação do
robô, sendo que a simulação em muitos casos é apenas utilizada como ferramenta de
desenvolvimento.
Algumas técnicas discutidas na seção 3.2.3 são aplicadas de forma
isolada na robótica, com destaque para os métodos gráficos e de animação. Em [Lamon
e Siegwart 2007] tem-se o exemplo do robô SOLERO, direcionado à deslocamentos em
terrenos altamente acidentados, a mecânica deste robô é o ponto chave do projeto. As
Figuras 4.6 e 4.7 mostram a simulação do projeto mecânico e os experimentos realizados
com um modelo em menor escala deste robô, respectivamente.
2 CORBA (Common Object Request Broker Architecture) é um modelo de arquitetura distribuída para middleware,
visando garantir interoperabilidade em ambientes heterogêneos [Common Object Request Broker Architecture 2010].
4.3. Validação Robótica
28
Figura 4.6: Simulação do Robô SOLERO [Lamon e Siegwart 2007].
Figura 4.7: Versão em Escala Reduzida do Robô SOLERO Usado em Testes Práticos [Lamon e Siegwart
2007].
Outro exemplo de validação gráfica é visto em [Woo et al. 2007], onde o design é
avaliado analiticamente e comparado graficamente com o protótipo real. As Figuras 4.8 e
4.9 mostram a simulação analítica e o protótipo em ação, respectivamente.
4.3. Validação Robótica
29
Figura 4.8: Simulação Analítica [Woo et al. 2007].
Figura 4.9: Protótipo Reproduzindo o Movimento Simulado [Woo et al. 2007].
4.3.1 Multiagentes Robóticos
A união das áreas de Simulação Multiagentes e a Robótica deu origem a uma nova
área de estudo conhecida como Swarm Robotics [Swarm Robotics 2010]. Utilizando a
mesma filosofia do projeto Swarm, a idéia central é a construção de robôs em grande
número utilizando o conceito bottom-up para modelar os seus comportamentos. Dentre
as muitas iniciativas de implementação deste conceito, a Figura 4.10 mostra o robô
4.3. Validação Robótica
30
idealizado pelo grupo SwarmRobo [SwarmRobot 2010], com o conceito de um robô com
o tamanho e características adequadas para a implementação deste tipo de estudo, além de
ser desenvolvido dentro da filosofia de código aberto, disponibilizando as especificações,
software, know-how, etc.
Figura 4.10: Protótipos do Robô para Swarm Robotic Desenvolvidos por [SwarmRobot 2010].
O projeto [Swarm-Bot 2010] além do desenvolvimento do robô utilizado em suas
pesquisas também foi desenvolvido um simulador dedicado para plataforma robótica. A
Figura 4.11 mostra uma imagem do simulador e dos robôs em ação em um dos estudos
realizados em [Mondada et al. 2005] onde o deslocamento de objetos pesados é realizado
pela associação de vários robôs menores com o intuito de aumentar a força resultante.
(a)
(b)
Figura 4.11: (a)Simulador para a Plataforma Swarm-Bot. (b) Aplicação Utilizando os Robôs Reais
[Mondada et al. 2005].
CAPÍTULO
5
VALIDAÇÃO EM S IMULAÇÃO M ULTIAGENTES : U M
E STUDO DE C ASO NA P LATAFORMA S WARM
A sabedoria torna bons os homens. A simulação da sabedoria torna-os
péssimos.
—– Juan Luis Vives.
Neste capítulo tem-se a apresentação de diversas plataformas de simulação multiagentes
com ênfase na plataforma Swarm, que serve de base no processo de integração entre
simulação virtual e robótica deste projeto. A escolha de uma plataforma deve se basear
em itens tais como: especificidade do modelo, exigência de desempenho, escalabilidade e a
relação custo/benefício. Outro fator visto no Capítulo 2 é o uso de linguagens específicas
de simulação como fator de redução considerável na quantidade de erros na fase de
implementação [Sargent 1999].
5.1 Plataformas de Simulação
Entre as muitas opções de plataformas disponíveis, entre as mais utilizadas e citadas
na literatura tem-se: STARLOGO [OpenStarLogo 2010], AGENTSHEETS [AgentSheets,
Inc. 2010], CORMAS [CORMAS 2010], BREVE [Breve 2010], ORGAHEAD [OrgAhead - A
Simulation of Organizational Adaptation 2010], REPAST [Repast - Recursive Porous Agent
Simulation Toolkit 2010], ASCAPE [Ascape 2010], NETLOGO [NetLogo 2010] e Swarm [Swarm
Development Group 2010]. A seguir é feita uma breve apresentação das plataformas REPAST,
ASCAPE e NETLOGO. Uma atenção maior será dispensada à plataforma Swarm, utilizada na
implementação deste projeto.
31
5.1. Plataformas de Simulação
32
5.1.1 Plataforma Repast
O Repast (Recursiv Porus Agent Simulation Toolkit) [Repast - Recursive Porous Agent
Simulation Toolkit 2010] é um ambiente de simulação baseado em agentes que utiliza
muitos dos conceitos utilizados no Swarm, diferindo deste por estar disponível em
várias plataformas, em vários idiomas, além de características como regreções lineares
e algoritmos genéticos. Criado na Universidade de Chicago por [Collier, Howe e North
2003], atualmente é mantido por organizações sem fins lucrativos e agências de fomento de
pesquisas científicas. Além de permitir o desenvolvimento de um modelo em linguagens
como Java, C#, C++, Visual Basic.Net, Lisp, Prolog e Python, pode-se citar os seguintes
recursos:
• Uma variedade de modelos de agentes e exemplos. Além disso, oferece aos usuários
total flexibilidade para especificar as propriedades e comportamentos dos agentes;
• Orientada a objetos;
• Possui um scheduler que suporta operações seqüenciais e paralelas a eventos discretos;
• Oferece ferramentas gráficas para geração de logs;
• Framework para simulação de Monte Carlo;
• Oferece uma gama de ambientes bi-dimensionais para visualização de agentes;
• Permite aos usuários acessar e modificar dinamicamente as propriedades dos agentes,
comportamentos e propriedades do modelo em tempo de execução;
• Inclui bibliotecas de algoritmos genéticos, redes neurais, geração de números
aleatórios, etc.;
• Está disponível em praticamente todas as plataformas modernas, incluindo Windows,
Mac OS e Linux. Há também suporte a computadores de alto desempenho e clusters.
O Repast também conta com assistentes interativos integrados ao IDE Eclipse onde
é possível criar agentes e ambientes, assim como especificar suas ações e propriedades
utilizando um ambiente gráfico intuitivo.
5.1. Plataformas de Simulação
33
Figura 5.1: Assistente para Criação de um Agente.
A Figura 5.1 mostra o assistente para criação de agentes, onde o usuário é guiado passo
a passo neste processo. Na Figura 5.2 tem-se o ambiente de programação gráfico, onde
as várias características do modelo conceitual do agente são traduzidas para o formato do
REPAST. A Figura 5.3 mostra a execução de uma simulação do modelo presa/predador nesta
plataforma.
Figura 5.2: Edição das Ações do Novo Agente Através de Blocos Gráficos.
5.1. Plataformas de Simulação
34
Figura 5.3: Exemplo de Simulação sendo Executada: Modelo Presa/Predador [Repast - Recursive
Porous Agent Simulation Toolkit 2010].
Em [Altaweel, Alessa e Kliskey 2010] é proposto um modelo conceitual utilizando a
plataforma REPAST que mostra como as decisões tomadas em pequenas propriedades rurais
influenciam o acesso a água potável.
5.1.2 Plataforma Ascape
Segundo [Parker 2001], Ascape é um framework para simulação multiagentes muito
semelhante a outras ferramentas de modelagem disponíveis. As suas principais diretrizes
de desenvolvimento são:
• Possibilidade de definir um modelo completo usando a menor descrição possível;
• A descrição do modelo deve ser generalizada para que as mesmas idéias básicas de
modelagem possam ser testadas em diferentes ambientes e configurações;
• Permitir a interação com o modelo sem programação, mas permitir modelar diversos
modelos de sistemas complexos;
• Permitir sintetizar idéias e metodologias de modelagem no nível mais alto possível.
Com um projeto bastante maduro, o Ascape fornece uma série de ferramentas para
permitir que não-programadores possam interagir significativamente com os modelos.
Os usuários têm controle amplo sobre a visualização do modelo, o comportamento e a
dinâmica do mesmo.
5.1. Plataformas de Simulação
35
Figura 5.4: Ambiente de Simulação Típico [Parker 2001].
O Ascape é desenvolvido em Java e pode ser integrado ao IDE Eclipse, mas sem contar
com os recursos de assistentes como a plataforma Repast. O modelo conceitual deve ser
implementado a princípio também na linguagem Java. Uma das implementações do estudo
da sociedade Anasazi em [Janssen 2009] utiliza o Ascape com o objetivo de replicar os
dados arqueológicos obtidos com o uso de simulações multiagentes. A Figura 5.5 ilustra
a representação da região na simulação.
Figura 5.5: Representação do Solo da Região de Long House Valley, no Arizona entre os Anos 800 e
1350 [Altaweel, Alessa e Kliskey 2010].
5.1.3 Plataforma NetLogo
O NetLogo é um ambiente para simulação multiagentes baseado na linguagem de
programação LOGO, que é um paradigma funcional de programação derivado do Lisp.
Além da linguagem LOGO, esta plataforma possui extensões próprias voltadas à simulação
5.1. Plataformas de Simulação
multiagentes, bem como uma API para utilizar extensões escritas em Java.
36
Além de
implementar as simulações com visualização em 2D e 3D, a plataforma permite a criação
de interfaces com o usuário através de botões, caixas de texto, etc. Outra funcionalidade é
a possibilidade de exportar a simulação como um applet 1 , tornando a simulação disponível
através de páginas web. Criado por Uri Wilensky, hoje é desenvolvido e mantido pelo
CCL (Center for Connected Learning and Computer-Based Modeling System) na universidade
Northwestern. Em [NetLogo AIDS model 1997] há um modelo que simula a propagação do
vírus HIV, através de transmissão sexual em uma pequena população isolada. A Figura 5.6
mostra a execução desta simulação em um navegador.
Figura 5.6: Applet da Simulação de Propagação do Virus HIV no NetLogo [NetLogo AIDS model 1997].
Em [Filatova, Parker e Veen] um modelo conceitual de mercado imobiliário é proposto.
Outro exemplo é a implementação do problema clássico da computação conhecido como
"Jantar dos Filósofos"ilustrado na Figura 5.7 sobre concorrência e compartilhamento de
recursos.
1 De acordo com [Deitel e Deitel 2005] applets são programas Java que podem ser incorporados a documentos HTTP.
Quando o navegador carrega a página em questão, o aplicativo é executado no navegador.
5.2. Swarm
37
Figura 5.7: Applet da Simulação do Jantar dos Filósofos em NetLogo [NetLogo Dining Philosophers
model. 2003].
5.2 Swarm
Criado em 1994 no Santa Fe Institute, EUA por Christopher Langton em conjunto com
outros pesquisadores, hoje sobre o controle do Swarm Development Group (SDG) que no
contexto do projeto Swarm, tem como principais objetivos [Santos 2007]:
• Avançar as simulações baseadas em sistemas multiagentes, objetivando continuar o
avanço da plataforma e auxiliar os usuários deste sistema;
• Propor uma troca livre entre os desenvolvedores das simulações multiagentes e os
usuários pelo mundo;
• Manter e desenvolver a competência dos desenvolvedores das simulações baseadas
em agentes utilizando esta plataforma.
Desenvolvido na linguagem Objective C mas com uma interface para Java, o Swarm
possui uma boa variedade de recursos para o desenvolvedor de simulações multiagentes
como gerenciamento de memória, escalonamento de ações, geração de gráficos, interferência
em tempo de execução, etc.
O temo Swarm pode ser descrito como um tipo de comportamento animal caracterizado
pela união de muitos elementos similares que comportam-se como um organismos maior,
como um cardume ou um enxame de abelhas. Este tipo de comportamento é caracterizado
por flexibilidade (exemplo: uma colônia de insetos se adapta às constantes mudanças
5.2. Swarm
38
no ambiente), robustez (as tarefas são realizadas apesar da possível perda ou falha de
membros do grupo), descentralização (não existe um controle central em uma colônia)
e auto-organização (insetos dentro de uma colônia se auto-organizam para chegar a um
objetivo).
Seguindo esta filosofia, o projeto Swarm foi desenvolvido de forma a reproduzir estas
características e conceitos.
Utilizando o paradigma orientado a objeto, a modelagem
dos agentes como objetos, com características e ações reativas, mostra-se eficaz na
representação deste indivíduos. A Tabela 5.1 mostra uma analogia entre as características
definidas no modelo conceitual e sua equivalência na modelagem orientada à objeto no
Swarm. Outra característica desta plataforma é a criação de modelos hierárquicos, ou seja,
é possível criar simulações multiagentes onde os agentes são simulações multiagentes ,
possibilitando a criação de sistemas com um nível muito maior de complexidade.
Ítem Modelado
Equivalente em Swarm
Agente (exemplo: uma bactéria)
Objeto Bacilo
Estado (volume da bactéria)
Atributos de instância: int vol
Comportamentos (metabolismo)
Métodos: Bacilo.metabolize()
Ambiente (substrado da cultura)
Variáveis e Objetos Globais
Tabela 5.1: Comparativo entre características do modelo conceitual e a modelagem orientada a
objetos do Swarm [A tutorial introduction to Swarm 2000].
5.2.1 Arquitetura
A arquitetura básica de uma simulação em Swarm é composta de um ModelSwarm,
um ObserverSwarm e, opcionalmente, podem ser definidos Probes para a simulação. O
ModelSwarm contém a implementação do modelo conceitual, contendo o Swarm principal
e, opcionalmente, sub-Swarms. Nesta arquitetura são definidos os agentes, ativos e passivos,
suas estruturas e funcionalidades e o ambiente de suas influências. O ObserverSwarm é
responsável pela coleta de dados da simulação e consequente apresentação dos mesmos
via gráficos, animações, arquivos, etc. Finalmente, os Probes podem ser implementados
para interagir com a simulação através da modificação e observação de valores de variáveis,
estados de agentes, etc. A Figura 5.8 mostra a arquitetura básica de uma simulação em
Swarm.
5.2. Swarm
39
Figura 5.8: Arquitetura Básica de uma Simulação Swarm.
Outro elemento essencial para uma simulação na plataforma Swarm é o Schedule ou
escalonador. Ele é responsável por gerar o sincronismo entre as ações dos agentes de cada
swarm que constitui o modelo conceitual. Pode haver apenas um único escalonador, no caso
de um único swarm, ou multiplos escalonadores, um para cada sub-swarm que constitui o
modelo.
Para o desenvolvimento e implementação da simulação, o ambiente Swarm coloca a
disposição um conjunto de ferramentas, classes e bibliotecas pra uso do desenvolvedor. A
Figura 5.9 mostra os grupos de bibliotecas disponíveis na plataforma.
Figura 5.9: Bibliotecas da Plataforma Swarm.
II Modelagem Conceitual e Computacional
40
CAPÍTULO
6
M ODELO C ONCEITUAL : A RQUITETURA DE
I NTEGRAÇÃO DOS M UNDOS V IRTUAL E R EAL
O mais importante não é a Arquitetura, mas a vida, os amigos e este
mundo injusto que devemos modificar.
—– Oscar Niemeyer.
Neste capítulo tem-se a apresentação da arquitetura do modelo conceitual em níveis
decrescentes de abstração.
6.1 Estrutura da Proposta
As simulações são, de uma forma geral, avaliadas isoladas de seu mundo modelado,
criando uma fronteira entre os resultados de simulação e o que de fato ocorre na realidade.
De forma geral, em trabalhos encontrados na literatura, a validação dos resultados de
simulações são feitas utilizando técnicas apresentadas no Capítulo 3. A proposta deste
projeto é criar uma ligação entre a simulação e o objeto de estudo, utilizando os dados
obtidos nesta abordagem para aprimorar a simulação e, possivelmente, contribuir no
processo de validação da mesma. A Figura 6.1 mostra uma visão macro desta proposta.
41
6.2. Definição dos Componentes
42
Figura 6.1: Diagrama Conceitual da Proposta de Interligação entre os Mundos Virtual e Real.
Dentro do contexto da simulação do Robô Explorador, visto mais a frente na Seção 7.1, os
elementos da proposta deste projeto são traduzidos como mostra a Figura 6.2. Aqui tem-se a
simulação virtual multiagentes traduzida na simulação dos robôs explorando um labirinto.
No mundo real tem-se o labirinto físico, com paredes reais, onde os robôs reais fazem sua
exploração. A definição de um middleware, traduzindo o mecanismo de ligação, realiza a
comunicação entre a simulação e os robôs.
Figura 6.2: Modelo Conceitual para a Simulação do Robô Explorador.
6.2 Definição dos Componentes
Considerando a arquitetura proposta na Figura 6.2, pode-se definir os componentes
envolvidos na simulação e seus respectivos papéis:
• Ambiente Virtual;
• Agente Virtual;
• Ambiente Real;
6.2. Definição dos Componentes
43
• Agente Real;
• Middleware de Comunicação.
Ambiente Virtual
É o labirinto virtual. Este elemento deve representar uma abstração do ambiente real,
ou seja, o labirinto, de forma adequada. Seus caminhos devem ser iguais, assim como suas
proporções, para que a discretização realizada na simulação corresponda o mais próximo
possível ao mundo real. Como exemplo, se a cada passo o robô anda 10 cm, no ambiente
virtual cada célula representa 10 cm do ambiente real. Por outro lado, os mesmos elementos
detectados pelos sensores no ambiente real devem ser detectados da mesma forma no
ambiente virtual.
Agente Virtual
É o agente da simulação, ou seja, um objeto computacional com todas as ações, reações
e características do modelo conceitual.
Ambiente Real
É o labirinto físico.
Neste elemento as informações relevantes são dimensionais,
considerando suas dimensões físicas, proporções, adequação ao robô, ou seja, suas
dimensões permitem que o robô percorra seu interior e possa realizar as manobras
necessárias para mudanças de direção. Para tanto alguns itens devem ser considerados,
como por exemplo a altura das paredes que deve ser suficiente para que o robô possa efetuar
a leitura correta com seus sensores.
Agente Real
É o robô desenvolvido em uma plataforma robótica. Deve possuir capacidade motora
adequada para percorrer o labirinto e detectar as paredes do mesmo. Sua velocidade e
capacidade de manobra devem ser adequadas para que seu movimento seja o mais preciso
possível, evitando assim discrepância entre o movimento do agente virtual e do agente
real. Vale ressaltar que esta recomendação pode representar um elemento de avaliação no
processo de validação, já que distúrbios deste tipo não previstos podem ser considerados
como uma falha na modelagem da simulação.
Middleware de Comunicação
Corresponde à composição entre software/hardware necessária para interligar a simulação
com os agentes reais.
Aqui são definidos protocolos, estruturas de dados, formas de
interação entre os agentes, etc. Pode-se dividir este elemento em dois componentes básicos:
a interface real, hospedado pelo agente real e responsável por receber e enviar dados
de/para a simulação. E a interface virtual, hospedada na simulação e responsável pelo
6.2. Definição dos Componentes
44
envio e recebimento das informações para a interface real. Entre estas interfaces, definise o protocolo da comunicação, além é claro do meio pelo qual esta comunicação ocorre.
6.2.1 Protocolo de Comunicação
A arquitetura descrita até este ponto exige a definição de um protocolo de comunicação
entre o ambiente computacional e o ambiente robótico, determinando assim a arquitetura
do agente robótico.
Figura 6.3: Middleware e seus Elementos.
Na Figura 6.3 tem-se os elementos básicos que constituem o middleware responsável por
implementar este protocolo e realizar a interface entre o mundo virtual e o mundo real. A
interface virtual é responsável por receber os comandos do ambiente simulado, traduzindo
estes para o protocolo de comunicação e enviar para o agente real. Além disso, como tratase de um protocolo bi-direcional, este elemento é responsável por receber as informações
enviadas pela interface do real através do protocolo e traduzi-las para o mundo virtual.
A interface real é responsável por receber os comandos, originados na simulação e
enviados pela interface virtual através do protocolo de comunicação, e traduzir estes
comandos em ações para o agente real. Da mesma forma que a interface virtual, a interface
real recebe dados do agente real que são traduzidos para o protocolo de comunicação
enviando as mesmas para o ambiente virtual.
6.2. Definição dos Componentes
45
Figura 6.4: Diagrama da Arquitetura Geral do Middleware.
A Figura 6.4 ilustra o diagrama geral do middleware, com o fluxo de dados através das
interfaces real e virtual, assim como a sua posição lógica no ambiente virtual e no agente
real.
Interface Virtual
Pode-se observar na Figura 6.4 pelos passos de 1 à 3 que após a tomada de decisão por
parte do agente na simulação começa o processo de comunicação com o mundo real. O
próximo passo é traduzir esta ação em comandos dentro da especificação do protocolo de
comunicação. Em seguida os dados são enviados para o agente real através de um meio
qualquer - neste momento a interface virtual entra em um estado de espera pela resposta do
agente real. Após a execução das ações do robô, o controle retorna à interface do sistema
virtual no passo 10, onde ocorre a recepção dos dados do mundo real. No passo 11, é
feita a tradução desta resposta para que o ambiente virtual seja atualizado com estes dados.
Finalmente o controle é devolvido à simulação.
Interface Real
A Figura 6.4 mostra no passo 4 a interface real em um estado de espera por comandos
do mundo virtual. Estes comandos são traduzidos em ações para o agente real no passo 5 e
são executadas pelo mesmo no passo 6. Em seguida o ambiente real é avaliado pelo agente
real e estes dados são traduzidos para o protocolo de comunicação nos passos 7 e 8, sendo
6.2. Definição dos Componentes
46
enviados ao ambiente virtual na seqüência. Finalmente o agente real volta ao estado de
espera, aguardando um novo comando.
Sincronismo da Simulação com o Mundo Real
O sincronismo da simulação com o mundo real é definido nos passos 4 e 10, quando há
uma espera do ambiente real quando o ambiente virtual está em execução, e uma espera do
ambiente virtual quando o real está em execução, respectivamente.
CAPÍTULO
7
M ODELO C OMPUTACIONAL E A NÁLISE DE D ADOS
A criação prossegue incessantemente por meio do homem, mas o
homem não cria: descobre.
—– Antonio Gaudi.
Neste capítulo tem-se a apresentação da simulação escolhida para implementar a
proposta deste projeto, a implementação do modelo conceitual na plataforma Swarm, a
interface entre a simulação e o mundo real e a implementação utilizando a plataforma
robótica LEGO Mindstorms.
Finalmente, tem-se a demonstração e análise dos dados
fornecidos pela implementação.
7.1 A Simulação do Robô Explorador
A resolução de problemas de busca representa um vasto campo de pesquisa em IA, assim
como a sua influência na Robótica. O deslocamento, reconhecimento e planejamento dos
movimentos em um ambiente desconhecido permite que dispositivos autônomos possam
realizar suas funções em ambientes dinâmicos. Esta relação entre a IA e a Robótica, assim
como as diferentes influências que ambientes virtuais e reais podem ter sobre este sistema,
levou a escolha da simulação do Robô Explorador a ser validado no mundo real.
7.1.1 Objetivo da Simulação
Em um ambiente desconhecido, um labirinto ou uma sala com algumas paredes
divisórias e um grupo de robôs que compartilham sua informações criando uma memória
coletiva, busca-se mapear o ambiente na intenção de encontrar a saída. Além de detectar e
47
7.1. A Simulação do Robô Explorador
48
mapear as paredes, os robôs devem evitar trafegar em locais já conhecidos, evitar choques,
bem como determinar o melhor trajeto até à saída.
7.1.2 Modelo Conceitual
Em [Lee et al. 2008] é implementado um modelo simulado de robô explorador utilizando
a plataforma Swarm, onde vários agentes independentes constroem seus próprios mapas
através de um sistema de visão computacional simulado. A idéia em [Lee et al. 2008] é
utilizar tecnologias como visão computacional, busca de caminhos, criação de mapas, etc.
Partindo desta idéia, o robô explorador proposto neste trabalho é uma simulação em um
ambiente discreto com paredes e uma saída, a qual é o objetivo do agente. As premissas
para a criação do modelo conceitual são as seguintes:
• O agente está simulando um robô e, portanto, deve considerar suas características e
limitações;
• O robô possui quatro sensores que podem identificar obstáculos: frente, traz, direita e
esquerda;
• As paredes são detectadas por estes sensores e imediatamente adicionadas ao mapa;
• O mapa é compartilhado por todos os robôs, ou seja, todos contribuem para a
formação do mesmo;
• O mapa é confiável, ou seja, a informação fornecida por todos os robôs é real;
• Caminhos já percorridos devem ser evitados. Caminhos desconhecidos são priorizados;
• Quando há informação suficiente para encontrar a saída, algoritmos mais eficientes
devem ser utilizados.
O Ambiente e o Mapa
A Figura 7.1 mostra um exemplo de ambiente utilizado na simulação proposta neste
trabalho. Este ambiente pode ser personalizado através de um arquivo de texto que contém
seu desenho. No início da simulação este ambiente é carregado pelo programa e exibido e
os robôs são distribuídos aleatoriamente.
7.1. A Simulação do Robô Explorador
49
Figura 7.1: Ambiente Exemplo. Estão Identificados os Robôs, Paredes e a Saída.
O mapa é uma representação bi-dimensional implementada utilizando uma estrutura
de dados do Swarm conhecida como Discrete2dImpl, um tipo de matriz onde cada posição
contém um número inteiro. O significado deste número é determinado pelo seguinte
padrão:
0 - Sem informação, representada no mapa pela cor branca;
1 - Parede identificada, representada no mapa pela cor preta;
2 - Área livre identificada - caminho ou passagem, identificada no mapa pela cor azul;
3 a 15 - Caminho percorrido, incrementado a cada passagem, identificada por tons de verde
mais claros a cada passagem;
50 - Saída identificada pela cor vermelha.
A Figura 7.2(a) mostra o mapa no início da simulação. A Figura 7.2(b) mostra o mapa
após a conclusão da simulação onde os robôs encontraram a saída.
(a)
(b)
Figura 7.2: (a) Mapa na Memória no Início da Simulação. (b) O Mesmo Mapa ao Término da
Simulação.
7.1. A Simulação do Robô Explorador
50
O Agente Robô Virtual
Representado no ambiente simulado por um ponto azul. Seguindo as especificações
do modelo, é capaz de movimentar-se nas quatro direções e detectar os obstáculos nestas
direções. A cada movimento, o mesmo avalia a informação de seus sensores e seu último
movimento para determinar o seu próximo passo. Em primeiro lugar o agente verifica
em quais direções é possível movimentar-se, detectando paredes e outros agentes. Estas
informações são incluídas no mapa, informando onde há paredes e onde há espaços livres.
Com estas informações, o agente faz as seguintes inferências:
• A posição que possui uma parede é descartada imediatamente da lista de possíveis
movimentos;
• Se há um outro agente em alguma posição da lista, esta também é descartada.
A escolha da nova posição entre as disponíveis considera, nesta ordem:
• Saída do ambiente;
• Continuidade do movimento, ou seja, se o agente está indo para direção sul, ele prefere
continuar nesta direção, considerando custoso o processo de mudança da mesma;
• Locais nunca visitados;
• Locais menos visitados.
No momento que o agente robô ocupa uma nova posição, este ponto no mapa é
incrementado para identificar que uma nova visita foi feita neste ponto.
Na próxima
inferência, por este ou outro agente, esta posição será preterida.
Algoritmo de Busca
Considerando as heurísticas discutidas até o momento, pode-se classificar o algoritmo
de busca utilizado até então como busca cega, considerado pouco eficiente. Como não
há informação de maior alcance no mapa (o robô apenas consegue detectar o que há
nas posições adjacentes à sua), não é possível aplicar algoritmos mais avançados. Além
disso a exploração e consequente mapeamento do ambiente é favorecida por algoritmos
exploratórios.
No momento em que há informação suficiente, obtida por um ou mais agentes, ligando
a posição atual do agente até à saída, o algoritmo A ∗ (lê-se A estrela) é aplicado para obter
o caminho mais curto até à saída. Este algoritmo é uma soluções muito utilizada para
encontrar o caminho mais curto em um grafo [Russell e Norvig 2004]. A otimização é
alcançada avaliando o custo para atingir o nó adjacente e o custo para todo o caminho. Desta
forma a função objetivo, que é a heurística utilizada na escolha dos nós, fica:
f (n) = g (n) + h(n)
7.2. Ligação Entre Mundo Virtual e Real
51
Onde:
g(n) é o custo para atingir o nó adjacente;
h(n) é o custo para atingir o objetivo a partir da origem;
f(n) é o custo estimado da solução de custo mais baixo passando por n.
No contexto da simulação do robô explorador, o grafo utilizado pelo algoritmo pode ser
traduzido pela discretização do ambiente. A Figura 7.3 ilustra como esta discretização é
realizada e a tradução da mesma no grafo. O custo das arestas neste grafo é igual a 1, e o
custo total do trajeto da posição atual do robô até à saída é igual ao número de células, ou
vértices visitados durante o trajeto.
Figura 7.3: Ambiente Discretizado e Traduzido em um Grafo.
7.2 Ligação Entre Mundo Virtual e Real
A arquitetura proposta no Capítulo 6 traduz-se em elementos como o labirinto físico, o
robô, a simulação e os sofwares necessários. Reduzindo um pouco mais o nível de abstração
da arquitetura exibida na Figura 6.2, na Figura 7.4 é possível observar a presença do Swarm
como ambiente de simulação, o ambiente do labirinto. Além disso, este modelo apresenta o
mapeamento entre alguns agentes da simulação e seus respectivos robôs.
7.3. Definição do Protocolo de Comunicação
52
Figura 7.4: Modelo Conceitual para a Simulação do Robô Explorador Utilizando a Plataforma Swarm
e Robôs LEGO.
7.3 Definição do Protocolo de Comunicação
No contexto da simulação do robô explorador, o protocolo da comunicação é definido
pelas mensagens que a interface real pode receber e a respectiva ação e resposta. Esta
interface responde a dois tipos de comando: deslocamento e coleta de dados. O comando de
deslocamento ocorre pelo envio de um código por parte da interface virtual que corresponde
à nova posição que deve ser assumida pelo robô, relativa ao labirinto. Os seguintes códigos
podem ser enviados:
• N - O robô deve se posicionar na célula a norte da célula atual;
• S - O robô deve se posicionar na célula a sul da célula atual;
• L - O robô deve se posicionar na célula à leste da célula atual;
• O - O robô deve se posicionar na célula à oeste da célula atual;
• E - O robô deve efetuar um giro de 90 graus no sentido anti-horário;
• D - O robô deve efetuar um giro de 90 graus no sentido horário;
• A - O robô deve realizar um deslocamento a frente na distância equivalente a uma
célula;
• R - O robô deve realizar uma varredura de seus sensores;
• F - Encerra o programa servidor no robô.
7.3. Definição do Protocolo de Comunicação
53
Após a execução de qualquer um dos comandos acima, o robô efetua a varredura de
seus sensores (identificando obstáculos ou outros elementos do ambiente real) e envia o
resultado desta varredura para a interface virtual. Para esta implementação, os valores
enviados são booleanos, ou seja, o robô envia ao para a simulação a informação se há ou
não um obstáculo em cada uma das quatro direções.
O meio de comunicação escolhido é o sinal de rádio-freqüência utilizando a tecnologia
Bluetooth, que está implementado de forma nativa no LEGO Mindstorms.
7.3.1 Interface Virtual
A interface virtual, como foi descrito no Capítulo 6, é responsável por receber os
comandos da simulação, traduzi-los para o protocolo, enviar estes comandos para o robô,
receber sua resposta e finalmente devolver à simulação as informações fornecidas pelo robô
a respeito do ambiente real. A Figura 7.5 mostra o diagrama de classe da implementação
desta interface.
Figura 7.5: Diagrama de Classe da Interface Virtual.
Durante a criação das instâncias dos agentes da simulação, os agentes reais instanciam
a classe InterfaceVirtual no caso do agente em questão ser real. O construtor da classe
recebe um conjunto de seis números separados por dois pontos, que representa o endereço
único de um dispositivo bluetooth. Este endereço é especificado em cada dispositivo que
usa a tecnologia bluetooth e é utilizado para diferenciar o robô que receberá os comandos
da interface. Ao invocar o construtor da classe, uma conexão será estabelecida entre as
interfaces permitindo a transferência de dados.
Além do construtor, esta classe possui o método Send(), que envia um caractere, ou seja,
um comando ao robô. Após enviar este caractere, o método entra em estado de espera até
receber a resposta do robô. Após receber os dados do robô, o objeto mantém uma estrutura
de dados com os dados do ambiente fornecidos pelo robô.
A Figura 7.6 mostra como a classe InterfaceVirtual é utilizada, sendo instanciada pelo
objeto do agente que representa um agente real.
7.4. O Agente Robô Real
54
Figura 7.6: Instâncias dos Objetos Agentes Virtuais e Reais Ligados à Interface Virtual.
7.4 O Agente Robô Real
Os requisitos para o robô explorador real são:
• Capacidade de deslocamento por todo o labirinto;
• Capacidade de manobra, permitindo modificar sua direção a qualquer momento;
• Dimensões adequadas permitindo que o mesmo faça suas manobras sem modificar o
ambiente;
• Sistema de sensor capaz de obter informação a respeito de obstáculos adjacentes a sua
posição atual;
• Sistema de comunicação sem fio que permita o tráfego de dados bi-direcionais;
• Controle de movimento que permita a reprodução precisa dos movimentos desejados;
• Capacidade de processamento adequada ao algoritmo utilizado.
Para a implementação do robô foi escolhida a plataforma LEGO Mindstorms, por
sua versatilidade e simplicidade, além de suprir todos os requisitos do projeto de forma
satisfatória. A Figura 7.7a ilustra a imagem do protótipo utilizado no experimento. A Figura
7.7b ilustra o desenho simplificado do robô e a identificação de seus elementos básicos.
7.4. O Agente Robô Real
55
(a)
(b)
Figura 7.7: (a) Protótipo Desenvolvido para o Experimento. (b) Diagrama Simplificado do Robô.
Trata-se de uma montagem padrão sugerida pelo kit LEGO Mindstorms com algumas
modificações, munido de duas rodas com movimentos independentes e um ponto de apoio
central. Além disso, possui um sensor de distância por ultra-som giratório, capaz de detectar
obstáculos ao redor do robô.
7.4.1 Especificação de Hardware
A Figura 7.8 mostra o esquema de ligações entre o controlador conhecido como NXT e os
três motores utilizados na montagem. Há também a ligação entre o sensor de distância e o
controlador.
Figura 7.8: (a) Esquema de Ligações entre o Controlador NXT e os Diversos Periféricos.
7.4. O Agente Robô Real
56
O dispositivo Bluetooth mostrado na Figura 7.8 é parte integrante do controlador, ou seja,
trata-se de um dispositivo interno exibido na figura de forma ilustrativa. O controlador NXT
possui três portas de saída para servomotores, sendo a porta B e a porta C utilizadas para o
deslocamento do robô e a porta A para movimentar o sensor de distância. O NXT também
possui quatro entradas para sensores, porém apenas a Entrada 1 é utilizada no protótipo.
A implementação deste agente requer a detecção de obstáculos nos quatro lados do robô:
frente, trás, direita e esquerda. Para utilizar apenas um sensor de distância para esta tarefa,
é necessário rotacionar o sensor nestas direções e efetuar uma leitura do mesmo a cada 90
graus. A Figura 7.9 ilustra a forma utilizada para implementar este sensor rotativo.
Figura 7.9: Design Utilizado para Efetuar a Leitura de Obstáculos nas Quatro Direções.
O primeiro passo é efetuar a leitura do sensor na posição inicial. Em seguida o motor A é
rotacionado em 90 graus. Uma nova leitura é feita no sensor. Uma nova rotação de 90 graus é
realizada no motor A, seguida de uma nova leitura no sensor. Uma nova rotação de 90 graus
é realizada seguida de uma última leitura no sensor. Finalmente, o motor A é rotacionado
em 270 graus negativos para que o mesmo retorne a sua posição inicial.
7.4.2 Especificação dos Movimentos
Dois movimentos básicos são implementados neste robô: rotação e deslocamento.
Entende-se como rotação a operação de girar o robô 90 graus para a esquerda ou para a
direita, em torno de seu próprio eixo. Para realizar este movimento, tanto o motor B quanto
o motor C são acionados com a mesma especificação de movimento, porém, com sentidos
de rotação contrários. O movimento resultante em cada roda tem sentido oposto, fazendo
o robô rodar em seu próprio eixo. No deslocamento, o robô desloca-se em uma trajetória
retilínea, por uma distância de 30cm que corresponde à distância entre o centro de duas
células do labirinto real - neste caso, o motor B e o motor C recebem a mesma especificação
de movimento, com o mesmo sentido. As Figuras 7.10 e 7.11 mostram a realização do
movimento de rotação e deslocamento respectivamente.
7.4. O Agente Robô Real
57
Figura 7.10: (a) Rotação de 90 Graus à Esquerda. (b) Rotação de 90 Graus à Direita.
Figura 7.11: Deslocamento Retilíneo de 30cm.
7.4.3 Algoritmo de Correção de Erros
O movimento realizado pelo robô é influenciado por uma grande quantidade de
variáveis, desde diferenças de fabricação de componentes eletro-mecânicos, velocidade,
até características do solo como atrito, relevo, etc. Estes erros são acumulados durante o
experimento, tornando a conclusão do mesmo uma tarefa árdua. Para reduzir a influência
destas variáveis, é necessário utilizar algoritmos para correção de erros.
7.4. O Agente Robô Real
58
Nesta implementação foi utilizado uma algoritmo simples, que corrige erros de
deslocamento utilizando a distância entre as paredes detectadas do labirinto. De posse da
informação de distância entre a parede lateral e o robô, o mesmo pode tomar a decisão de
afastar-se da mesma de forma leve, caso a distância não seja muito pequena, ou de forma
drástica, caso a distância entre o robô e a parede seja muito pequena. A Figura 7.12 ilustra
os tipos de erro e a Figura 7.13 mostra como o algoritmo efetua a correção.
Figura 7.12: Tipos de Erro no Posicionamento do Robô.
Figura 7.13: Seqüência de Passos da Correção de Erro.
7.4. O Agente Robô Real
59
7.4.4 Interface Real e o Software de Controle
A interface real, como foi descrito no Capítulo 6, é responsável por receber os comandos
enviados pela simulação e traduzi-los em ações relacionadas ao estado atual do robô. O
software de controle realiza esta ação da melhor forma possível, corrigindo o movimento
quando necessário, além de obter os dados sobre o estado do ambiente real. Finalmente
estes dados são enviados através da interface real à simulação. A Figura 7.14 mostra o
diagrama de classes da interface real e do software de controle.
Figura 7.14: Diagrama de Classes da Interface Real e Software de Controle.
A classe Bussola é uma estrutura de dados utilizada para armazenar a posição relativa
atual do robô. Os métodos Direita() e Esquerda() atualizam esta estrutura quando estes
movimentos são realizados. A classe InterfaceReal contempla não só a interface real mas
também o software de controle do robô. Além dos vários atributos utilizados por esta classe,
o método main() é responsável por realizar a configuração inicial do robô e popular as
variáveis iniciais, realizando também a conexão com a simulação e entrando no estado de
espera por comandos. Os métodos relacionados ao controle do robô são viraDireita()
e viraEsquerda(), responsáveis por realizar a manobra de giro de 90 graus no robô. O
método Anda(), responsável por realizar o deslocamento de 30cm aplicando a correção de
erro quando necessário e os métodos getSensorVal() e runRadar(), responsáveis pela
7.5. Cenário e Execução
60
realização do movimento do sensor de distância e obtenção dos valores do mesmo. A
interface real é implementada pelo método MoveTo(), que recebe o caractere enviado pela
simulação e traduz este em uma seqüência de comandos necessários para a realização do
movimento.
7.5 Cenário e Execução
A Figura 7.15b mostra o labirinto real construído para a realização do experimento. Tratase da reprodução real do labirinto mostrado na Figura 7.15a, em uma matriz de oito por oito
células. As células no labirinto real são quadrados com 30cm de lado, e as paredes também
possuem 30cm de altura, altura esta suficiente para que o sensor do robô fique abaixo desta,
tornando possível a detecção da mesma.
(a)
(b)
Figura 7.15: (a) Desenho do Labirinto Virtual Utilizado no Experimento. (b) Foto do Labirinto Real.
A Tabela 7.1 mostra os parâmetros utilizados no experimento. Alguns parâmetros são
adimensionais, como a velocidade. Como ambiente de execução para os robôs foi utilizada
a Virtual Machine LeJOS [LeJOS Team 2010], que habilita o controlador NXT a executar
programas escritos na linguagem Java.
7.5. Cenário e Execução
61
Parâmetro
Valor
Dimensão das células
30cm x 30cm
Velocidade dos motores durante o deslocamento
300
Velocidade dos motores durante a rotação
250
Força aplicada nos motores de tração
100%
Rotação do sensor de distância
92◦
Rotação dos motores de tração durante o deslocamento
620◦
Rotação dos motores de tração durante o giro
180◦
Rotação dos motores de tração para correção de erro
30◦
Tabela 7.1: Parâmetros Utilizados no Experimento.
7.5.1 Reprodução de Movimentos
A reprodução dos dois tipos de movimentos básicos do robô, bem como o deslocamento
entre as células de forma equivalente entre a simulação e o labirinto real são itens críticos
para o sucesso do experimento.
A Figura 7.16 mostra a realização do movimento de
deslocamento e mudança de direção através de imagens capturadas de um vídeo do
experimento, assim como a simulação no mesmo ponto reproduzindo o movimento.
Figura 7.16: Imagens do Movimento Realizado e o Mesmo Movimento Realizado na Simulação.
A Figura 7.17 mostra o algoritmo de correção de erro corrigindo a trajetória do robô
durante a realização de um determinado movimento.
7.5. Cenário e Execução
62
Figura 7.17: Imagem da Correção de Erro Durante a Realização de um Movimento.
7.5.2 Reprodução de Eventos
Alguns eventos são de grande importância para a realização deste projeto, como o caso
de um agente virtual encontrar um agente real. Esta situação é ilustrada na Figura 7.18, onde
o encontro é exibido na simulação e a imagem capturada do mundo real.
Figura 7.18: Encontro entre o Agente Real e o Virtual na Simulação e Capturado pela Câmera.
A Figura 7.19 mostra o encontro de dois agentes reais durante o experimento, mostrando
a tomada de decisão por parte deste e a conseqüente mudança de direção.
7.5. Cenário e Execução
63
Figura 7.19: Encontro entre Dois Agentes Reais.
7.5.3 Simulação Completa
O cenário escolhido para o experimento foi uma simulação com quatro agentes, sendo
dois reais e dois virtuais. A Figura 7.20 e a Figura 7.21 mostram as imagens do simulador
na execução deste experimento, com imagens capturadas a cada passo da simulação(lado
direito). Em cada imagem da simulação há a imagem capturada por uma câmera do
ambiente real(lado direito). O passo da simulação é definido pelo escalonador do Swarm
e compreende o tempo entre o disparo das ações de todos os agentes até a atualização
completa do ambiente simulado.
7.5. Cenário e Execução
64
Figura 7.20: Imagem da Simulação a Cada Passo - Mundo Virtual e Mundo Real - Passos de 1 a 18.
7.5. Cenário e Execução
65
Figura 7.21: Imagem da Simulação a Cada Passo - Mundo Virtual e Mundo Real - Passos de 19 a 34.
III Conclusão
66
C ONCLUSÕES
O estudo das técnicas de validação descritas na literatura, considerando o estado da arte
em simulações multiagentes, mostra a necessidade da criação e formalização de métodos
rigorosos e confiáveis para atestar a validade destes modelos. A proposta apresentada
neste projeto, e sua conseqüente implementação, mostra que a ligação entre mundos real
e virtual como ferramenta não só de validação como também de aprimoramento do modelo
conceitual é válida e pode ser utilizada como parte do processo de validação em simulações
multiagentes.
A interferência de fatores físicos como atrito, inércia, limitação de materiais, etc., muitas
vezes são deixados de lado na criação de modelos conceituais, colocando em discussão a
validade destes modelos frente ao cenário real. Durante a realização desta pesquisa este
fatores surgiram e foram tratados pelos agentes reais sem a interferência da simulação,
permitindo que o modelo conceitual proposto não fosse influenciado por estes fatores,
criando uma camada de abstração onde problemas virtuais são tratados na simulação e
problemas reais são tratados pelos robôs.
Outro resultado obtido com sucesso durante os experimentos foi a interação entre
agentes virtuais e os robôs. Este resultado mostra que é possível utilizar esta proposta para
desenvolver modelos parciais onde apenas parte dos agentes reais estão disponíveis para o
estudo.
7.6 Trabalhos Futuros
Durante o desenvolvimento deste projeto de pesquisa foram identificados alguns pontos
onde é necessário um maior aprofundamento, assim como o surgimento de novos desafios,
entre os quais destaca-se:
• Criação de um modelo mais complexo de middleware, onde características mais
abrangentes possam ser contempladas;
• Associação e comparação com as técnicas clássicas de validação e o contexto da
proposta deste projeto;
• Desenvolvimento de modelos com discretizações mais complexas e menos rígidas;
• Uso de plataformas robóticas específicas, com recursos mais avançados;
67
7.6. Trabalhos Futuros
68
• Criação de novos cenários, onde a quantidade de agentes e dimensões físicas serão
colocados como desafios na integração dos mundos.
R
R EFERÊNCIAS
[A tutorial introduction to Swarm 2000]A
tutorial
introduction
to
Swarm.
[S.l.]:
Swarm Development Group - Complex Systems Summer School 2000,
2000.
Http://www.swarm.org/csss-tutorial/frames.html.
[AgentSheets, Inc. 2010]AGENTSHEETS, Inc. Agosto 2010. Http://www.agentsheets.com/.
[Altaweel, Alessa e Kliskey 2010]ALTAWEEL, M.; ALESSA, L. N.; KLISKEY, A. D. Social
influence and decision-making: Evaluating agent networks in village responses to change
in freshwater. Journal of Artificial Societies and Social Simulation, v. 13, n. 1, p. 15, 2010.
ISSN 1460-7425. Disponível em: <http://jasss.soc.surrey.ac.uk/13/1/15.html>.
[Arthur e Nance 1996]ARTHUR, J. D.; NANCE, R. E. Independent Verification and Validation:
A Missing Link in Simulation Methodology? Blacksburg, VA, USA, 1996.
[Ascape 2010]ASCAPE. Julho 2010. Http://ascape.sourceforge.net.
[Asimov]ASIMOV, I. I, Robot (a collection of short stories originally published between 1940
and 1950). [S.l.: s.n.].
[Berends e Romme 1999]BERENDS,
research
tool
in
management
P.;
ROMME,
studies.
G.
[S.l.],
Simulation
1999.
as
Disponível
a
em:
<http://ideas.repec.org/p/ner/maastr/urnnbnnlui27-19248.html>.
[Berlanga 2003]BERLANGA, R. Simulacion Informática. Blacksburg, VA, USA, 2003.
[Brenner e Werker 2004]BRENNER, T.; WERKER, C. Empirical Calibration of Simulation
Models. [S.l.], ago. 2004. Disponível em: <http://ideas.repec.org/p/sce/scecf4/89.html>.
[Breve 2010]BREVE. Agosto 2010. Http://www.spiderland.org/.
69
70
[Caughlin 2000]CAUGHLIN, D. An integrated approach to verification, validation, an
accredition of models and simulations. Winter Simulation Conference, 2000.
[Collier, Howe e North 2003]COLLIER, N.; HOWE, T.; NORTH, M. J. Onward and upward: The
transition to repast 2.0. First Annual North American Association for Computational Social
and Organizational Science Conference, 2003.
[Colon, Sahli e Baudoin 2006]COLON, E.; SAHLI, H.; BAUDOIN, Y. Moros3d, a multi mobile
robot 3d simulator. In: Proceedings of the 9th International Conference on Climbing and
Walking Robots. [S.l.: s.n.], 2006. p. 722–728.
[Common Object Request Broker Architecture 2010]COMMON
Object
Request
Broker
Architecture. Julho 2010. Http://www.omg.org/gettingstarted/history_of_corba.htm.
[Conte e Castelfranchi 1995]CONTE, R.; CASTELFRANCHI, C. Understanding the functions
of norms in social groups through simulation. In: Artificial Societies. The Computer
Simulation of Social Life. London: [s.n.], 1995.
[CORMAS 2010]CORMAS. Agosto 2010. Http://cormas.cirad.fr/indexeng.htm.
[David et al. 2004]DAVID, N. et al. The Structure and Logic of Interdisciplinary Research in
Agent-Based Social Simulation. Journal of Artificial Societies and Social Simulation, v. 7,
n. 3, 2004.
[David, Sichman e Coelho 2001]DAVID, N.; SICHMAN, J. S.; COELHO, H. Agent-based social
simulation with coalitions in social reasoning. In: Proc. 2nd. International Workshop on
Multi-Agent Based Simulation. [S.l.]: Springer-Verlag, 2001. p. 244–265.
[Deitel e Deitel 2005]DEITEL, H. M.; DEITEL, P. J. Java: Como Programar? 6a . ed. São Paulo,
Brasil: Pearson Prentice Hall, 2005.
[Dilão 1995]DILãO,
R.
A
ciência
Universidade Técnica de Lisboa,
dos
v. 1,
sistemas
n. 1,
Técnica
complexos.
p. 14,
-
1995. Disponível em:
<http://sd.ist.utl.pt/Awareness/complexos.pdf>.
[Drogoul e Ferber 1994]DROGOUL, A.; FERBER, J. Multi-agent simulation as a tool for
modeling societies: Application to social differentiation in ant colonies. In: MAAMAW ’92:
Selected papers from the 4th European Workshop on on Modelling Autonomous Agents in
a Multi-Agent World, Artificial Social Systems. London, UK: Springer-Verlag, 1994. p. 3–23.
ISBN 3-540-58266-5.
[Ferber 1996]FERBER, J. Reactive distributed artificial intelligence:
principles and
applications. John Wiley & Sons, Inc., New York, NY, USA, p. 287–314, 1996.
[Filatova, Parker e Veen]FILATOVA, T.; PARKER, D.; VEEN, A. van der. Agent-based urban
land markets: Agentś pricing behavior, land prices and urban land use change. Journal
71
of Artificial Societies and Social Simulation, v. 12, n. 1, p. 3. ISSN 1460-7425. Disponível em:
<http://jasss.soc.surrey.ac.uk/12/1/3.html>.
[França 2010]FRANçA, R. dos S. Simulação Multi-Agentes Modelando o Comportamento
Coletivo de Pânico em Multidões. Dissertação (Mestrado) — UFABC, 2010.
[Gilbert e Troitzsch 1999]GILBERT, N.; TROITZSCH, K. G. Simulation for the Social Scientist.
[S.l.]: Open University Press, 1999.
[Gou 2006]GOU, C. The simulation of financial markets by agent-based mix-game models.
Journal of Artificial Societies and Social Simulation, v. 9, n. 3, p. 6, 2006. ISSN 1460-7425.
Disponível em: <http://jasss.soc.surrey.ac.uk/9/3/6.html>.
[hadouaj, Drogoul e ESPIÉ 2001]HADOUAJ, S. E.; DROGOUL, A.; ESPIÉ, S. How to combine
reactivity and anticipation: the case of conflicts resolution in a simulated road traffic.
In: MABS 2000: Proceedings of the second international workshop on Multi-agent based
simulation. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2001. p. 82–96. ISBN 3-54041522.
[Hammersley e Handscomb 1964]HAMMERSLEY, J. M.; HANDSCOMB, D. C. Book. Monte
Carlo methods. [S.l.]: Methuen, London, 1964. 178p. p.
[Heppenstall, Evans e Birkin 2006]HEPPENSTALL, A.; EVANS, A.; BIRKIN, M. Using hybrid
agent-based systems to model spatially-influenced retail markets. Journal of Artificial
Societies and Social Simulation, v. 9, n. 3, p. 2, 2006. ISSN 1460-7425. Disponível em:
<http://jasss.soc.surrey.ac.uk/9/3/2.html>.
[Jacintho et al. 2010]JACINTHO, L. F. de O. et al. An agent-based model for the spread of
the dengue fever: A swarm platform simulation approach. Proceedings of the ACM Agentdirected Simulation Symposium, Orlando, USA, p. 17–24, 2010.
[Janssen 2009]JANSSEN, M. A. Understanding artificial anasazi. Journal of Artificial Societies
and Social Simulation, v. 12, n. 4, p. 13, 2009. ISSN 1460-7425. Disponível em:
<http://jasss.soc.surrey.ac.uk/12/4/13.html>.
[Katerelos e Koulouris 2004]KATERELOS, I. D.; KOULOURIS, A. G. Seeking equilibrium leads
to chaos: Multiple equilibria regulation model. Journal of Artificial Societies and Social
Simulation, v. 7, n. 2, 2004.
[Küppers e Lenhard 2005]KüPPERS, G.; LENHARD, J. Validation of simulation: Patterns in
the social and natural sciences. Journal of Artificial Societies and Social Simulation, v. 8, n. 4,
p. 3, 2005. ISSN 1460-7425. Disponível em: <http://jasss.soc.surrey.ac.uk/8/4/3.html>.
[Lamon e Siegwart 2007]LAMON, P.; SIEGWART, R. 3d position tracking in challenging
terrain. Int. J. Rob. Res., Sage Publications, Inc., Thousand Oaks, CA, USA, v. 26, n. 2, p.
167–186, 2007. ISSN 0278-3649.
72
[Lee et al. 2008]LEE, B.-J. et al. Pyro implementation of swarm-bots exploring target objects
in an area with irregular barriers. In: Computer and Information Technology, 2008. CIT 2008.
8th IEEE International Conference on. [S.l.: s.n.], 2008. p. 670 –675.
[LeJOS Team 2010]LEJOS Team. Novembro 2010. Http://lejos.sourceforge.net/.
[Lovelock 1992]LOVELOCK, J. E. A numerical model for biodiversity. In: Philosophical
Transactions of the Royal Society of London Vol. 338. [S.l.: s.n.], 1992. p. 383–391.
[Mondada et al. 2005]MONDADA, F. et al. Object Transport by Modular Robots that Selfassemble. 2005.
[Moss 2008]MOSS, S. Alternative approaches to the empirical validation of agent-based
models. Journal of Artificial Societies and Social Simulation, v. 11, n. 1, p. 5, 2008. ISSN
1460-7425. Disponível em: <http://jasss.soc.surrey.ac.uk/11/1/5.html>.
[NetLogo 2010]NETLOGO. Agosto 2010. Http://ccl.northwestern.edu/netlogo/.
[NetLogo AIDS model 1997]NETLOGO
AIDS
model.
Evanston,
IL:
Center
for
Connected Learning and Computer-Based Modeling, Northwestern University, 1997.
Http://ccl.northwestern.edu/netlogo/models/AIDS.
[NetLogo Dining Philosophers model. 2003]NETLOGO
model.
Evanston,
Computer-Based
IL:
Center
Modeling,
for
Dining
Connected
Northwestern
Philosophers
Learning
University,
and
2003.
Http://ccl.northwestern.edu/netlogo/models/DiningPhilosophers.
[OpenStarLogo 2010]OPENSTARLOGO. Agosto 2010. Http://education.mit.edu/starlogo/.
[OrgAhead - A Simulation of Organizational Adaptation 2010]ORGAHEAD
-
A
Simulation
of
Organizational
Adaptation.
Agosto
2010.
Http://www.casos.cs.cmu.edu/projects/OrgAhead/.
[Pahl-Wostl e Ebenhöh 2004]PAHL-WOSTL, C.; EBENHöH, E. An adaptive toolbox model:
a pluralistic modelling approach for human behaviour based on observation. Journal
of Artificial Societies and Social Simulation, v. 7, n. 1, p. 3, 2004. Disponível em:
<http://jasss.soc.surrey.ac.uk/7/1/3.html>.
[Parker 2001]PARKER, M. T. What is ascape and why should you care?
Journal of
Artificial Societies and Social Simulation, v. 4, n. 1, p. 5, 2001. Disponível em:
<http://jasss.soc.surrey.ac.uk/4/1/5.html>.
[R. e J. 1995]R., C.; J., S. Depnet: how to benefit from social dependence. Journal of
Mathematical Sociology, N°20, p. pp161–177, 1995.
[Repast - Recursive Porous Agent Simulation Toolkit 2010]REPAST - Recursive Porous Agent
Simulation Toolkit. Junho 2010. Http://repast.sourceforge.net/repast_3/index.html.
73
[Richards, Richards e Mckay 1998]RICHARDS, D.; RICHARDS, W. A.; MCKAY, B. D. Collective
choice and mutual knowledge structures. In: Advances in Complex Systems. [S.l.: s.n.], 1998.
p. 221–236.
[RoboCup Rescue World Championship and Conference 2010]ROBOCUP
Rescue
World
Championship and Conference. Julho 2010. Http://www.robocuprescue.org/.
[RoboCup World Championship and Conference 2010]ROBOCUP World Championship and
Conference. Julho 2010. Http://www.robocup.org/.
[Robotics Laboratory 2010]ROBOTICS
Laboratory.
Julho
2010.
Http://robotics.megagiant.com/history.html.
[RobotMaster 2010]ROBOTMASTER. Agosto 2010. Http://www.robotmaster.com.
[Rosário 2005]ROSáRIO, J. M. Book. Princípios de Mecatrônica. São Paulo, Brasil: Prentice
Hall, Brasil, 2005. 356p. p.
[Russell e Norvig 2004]RUSSELL, S.; NORVIG, P. Inteligência Artificial. 2a . ed. Rio de Janeiro,
Brasil: Elsevier Editora, 2004.
[S. et al. 1999]S., D. J. et al. Undertanding anasaki culture change through agent-based. In:
Modeling Small Scale Societies. [S.l.]: Oxford University Press, 1999.
[Santos 2007]SANTOS, M. V. B. Inteligência Artificial Distribuída na Simulação de Vida
Artificial. [S.l.], 2007.
[Sargent 1999]SARGENT, R. G. Validation and verification of simulation models. Winter
Simulation Conference, 1999.
[Schmid 2005]SCHMID, A. What is the truth of simulation? Journal of Artificial Societies
and Social Simulation, v. 8, n. 4, p. 5, 2005. ISSN 1460-7425. Disponível em:
<http://jasss.soc.surrey.ac.uk/8/4/5.html>.
[Servomecanismo 2010]SERVOMECANISMO.
Agosto
2010.
Http://www.futaba-
rc.com/servos/servos.html.
[Simulador RoboCup 2010]SIMULADOR
RoboCup.
Agosto
2010.
Http://www.ifi.uzh.ch/ailab/people/nitschke/RoboCup.html.
[Swarm-Bot 2010]SWARM-BOT. Agosto 2010. Http://www.swarm-bots.org/.
[Swarm Development Group 2010]SWARM
Development
Group.
Agosto
2010.
Http://www.swarm.org.
[Swarm Robotics 2010]SWARM Robotics. Agosto 2010. Http://www.swarm-robotics.org.
[SwarmRobot 2010]SWARMROBOT. Agosto 2010. Http://www.swarmrobot.org/.
74
[Wilcoxon 1945]WILCOXON, F. Individual comparisons by ranking methods. Biometrics
Bulletin, v. 1, n. 6, p. 80–83, 1945. Disponível em: <http://www.jstor.org/stable/3001968>.
[Windrum, Fagiolo e Moneta 2007]WINDRUM, P.; FAGIOLO, G.; MONETA, A. Empirical
validation of agent-based models:
Alternatives and prospects. Journal of Artificial
Societies and Social Simulation, v. 10, n. 2, p. 8, 2007. ISSN 1460-7425. Disponível em:
<http://jasss.soc.surrey.ac.uk/10/2/8.html>.
[Woo et al. 2007]WOO, C.-K. et al. Optimal design of a new wheeled mobile robot based
on a kinetic analysis of the stair climbing states. J. Intell. Robotics Syst., Kluwer Academic
Publishers, Hingham, MA, USA, v. 49, n. 4, p. 325–354, 2007. ISSN 0921-0296.

Documentos relacionados