Implementação do Controle de Enxames de Robôs Utilizando a

Transcrição

Implementação do Controle de Enxames de Robôs Utilizando a
Mateus Mendonça Bosque
Implementação do Controle de Enxames de Robôs
Utilizando a Hidrodinâmica de Partículas Suavizadas
Belo Horizonte
Dezembro de 2009
Mateus Mendonça Bosque
Implementação do Controle de Enxames de Robôs
Utilizando a Hidrodinâmica de Partículas Suavizadas
Monografia submetida à banca examinadora
designada pelo Colegiado Didático do Curso
de Graduação em Engenharia de Controle
e Automação da Universidade Federal de
Minas Gerais, como parte dos requisitos para
aprovação na disciplina Projeto Final de Curso.
Orientador: Renato Cardoso Mesquita
Co-Orientador: Luciano Cunha A. Pimenta
Supervisor: Luiz Chaimowicz
U NIVERSIDADE F EDERAL DE M INAS G ERAIS
E SCOLA DE E NGENHARIA
Belo Horizonte
Dezembro de 2009
Resumo
Um novo paradigma chamado Enxame de Agentes Autônomos tem sido estudado no campo
da robótica. Neste paradigma o objetivo é controlar grandes grupos de robôs (dezenas a centenas) muito simples. A idéia chave é que o sucesso na execução de uma tarefa dependerá dos
comportamentos que vão emergir das interações entre agentes. Neste contexto, cada agente
deve ser o mais simples possível com capacidades limitadas de comunicação, sensoriamento e
atuação. Outra característica importante de um enxame é a flexibilidade. Utilizando diferentes mecanismos de coordenação o mesmo enxame pode ser utilizado em diferentes problemas.
Um outro ponto importante é que a coordenação do enxame não deve depender de membros
específicos do grupo. Logo, soluções totalmente descentralizadas, onde os agentes podem ser
considerados anônimos e podem ser programados com o mesmo código, devem ser consideradas. Além disso, tais soluções devem ser robustas à adição e remoção dinâmica de robôs.
Este é um trabalho de foco prático. Nesse sentido, seu objetivo principal é implementar
técnicas de controle de enxames em robôs reais, os e-pucks. Espera-se com isso contribuir
para que conceitos teóricos existentes na literatura sejam validados na presença de efeitos que
normalmente são verificados nos sistemas robóticos reais, como ruídos de localização e atuação,
saturações, dinâmica, restrições mecânicas, atrasos de comunicação, etc.
A coordenação do enxame se dá através do acoplamento entre duas técnicas. O método
de Hidrodinâmica de Partículas Suavizadas (HPS) é utilizado para modelar as interações entre
robôs do grupo. Já o Método de Elementos Finitos (MEF) é utilizado para calcular os campos
vetoriais que determinam as forças externas que orientam os agentes até o alvo. Esta abordagem
é instanciada num problema de geração de padrões, onde um padrão geométrico desejado deve
ser obtido e mantido pelos e-pucks sem qualquer coordenação centralizada.
Abstract
A new approach named Swarm of Autonomous Agents has been studied in the field of robotics. In this context, the aim of this paradigm is to control large groups of very simple robots
(tens or hundreds). The main idea is that the success of executing a task depends on the behaviors that emerge from the interactions among agents. Each agent should be as simple as possible
with limited capabilities of communication, sensing, and actuation. An additional important
attribute of a swarm is its flexibility. By employing different coordination strategies, the same
swarm can be used in different tasks. Besides, the proposed strategies should not depend on a
specific member of the group. Therefore, completely decentralized solutions should be considered, in which agents can be considered anonymous and can be programmed with the same
code. Also, these solutions should be robust to dynamic addition and removal of robots.
This is a practical work. The main objective is to implement techniques of swarm control
in real robots, the e-pucks. We expect to contribute to the validation of theoretical concepts
described in the literature on the presence of effects, which are normally found on real robotic
platforms, as localization and actuation noise, saturations, dynamics, mechanical constraints,
communication delays, etc.
The coordination strategy is implemented by means of the coupling between two numerical techniques. The Smoothed Particle Hydrodynamics (SPH) method is applied to model the
interactions among robots. The Finite Element Method (FEM) is used to compute the vector
field which determines the external forces that drive the agents to the goal. This framework
is instantiated in a pattern generation problem, in which a desired geometric pattern must be
obtained and maintained by the e-pucks without any centralization.
Lista de Figuras
1.1
Configuração de um swarm-bot para vencer o espaço entre dois tijolos (SWARMBOTS, 2009). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Simulações de robôs EU-MOP retirando o petróleo derramado em um ambiente marinho (FRITSCH; WEGENER; SCHRAFT, 2007). . . . . . . . . . .
1.3
p. 14
Seqüência de fotos que confirmam a viabilidade da abordagem desenvolvida
(MARCOLINO; CHAIMOWICZ, 2008). . . . . . . . . . . . . . . . . . . .
2.1
p. 13
p. 14
Um robô é representado por um ponto em seu espaço de configurações (PEREIRA, 2003). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
2.2
Mínimo local causado por um obstáculo em forma de U. . . . . . . . . . . .
p. 17
2.3
Programa FEMM: ferramenta para solução numérica de problemas eletromagnéticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
2.4
Gráfico da função núcleo W com h = 1. . . . . . . . . . . . . . . . . . . . .
p. 20
3.1
Diagrama representativo do controlador. . . . . . . . . . . . . . . . . . . . .
p. 26
4.1
Stage: uma ferramenta para simulação utilizada na robótica. . . . . . . . . .
p. 28
4.2
Dois e-pucks do VeRLab(GARCIA, 2008). . . . . . . . . . . . . . . . . . . .
p. 29
4.3
Sistema de localização por câmeras do VerLab (GARCIA et al., 2007). . . . .
p. 30
4.4
Exemplos de marcos visuais da biblioteca ARToolkitPlus (GARCIA et al.,
2007). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 30
4.5
Espaço de configurações, malha e campo elétrico do primeiro mapa. . . . . .
p. 31
4.6
Espaço de configurações, malha e campo elétrico do segundo mapa. . . . . .
p. 32
4.7
Espaço de configurações, malha e campo elétrico do terceiro mapa. . . . . . .
p. 32
4.8
Evolução do experimento no primeiro mapa: (a) 0%. (b) 33%. (c) 67%. (d)
4.9
100%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 33
Trajetória descrita pelo enxame no primeiro mapa. . . . . . . . . . . . . . .
p. 34
4.10 Densidade dos robôs ao longo do experimento no primeiro mapa. . . . . . . .
p. 34
4.11 Evolução do experimento no segundo mapa: (a) 0%. (b) 33%. (c) 67%. (d)
100%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 35
4.12 Trajetória descrita pelo enxame no segundo mapa. . . . . . . . . . . . . . . .
p. 35
4.13 Densidade dos robôs ao longo do experimento no segundo mapa. . . . . . . .
p. 36
4.14 Evolução do experimento no terceiro mapa: (a) 0%. (b) 33%. (c) 67%. (d)
100%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 37
4.15 Trajetória descrita pelo enxame no terceiro mapa. . . . . . . . . . . . . . . .
p. 37
4.16 Densidade dos robôs ao longo do experimento no terceiro mapa. . . . . . . .
p. 38
4.17 Sequência de imagens de experimentos no segundo mapa evidenciando as
dificuldades de calibração da câmera. . . . . . . . . . . . . . . . . . . . . .
p. 39
4.18 Localização dos robôs baseada na odometria em um experimento com o segundo mapa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 39
Sumário
1 Introdução
p. 8
1.1
Enxames de robôs: a inteligência de enxames e a robótica cooperativa . . . .
p. 8
1.2
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 11
1.3
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 12
1.4
Estado da Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 13
1.5
Organização da Monografia . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 14
2 Definições, nomenclatura e ferramentas
p. 15
2.1
Espaço de Configurações . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
2.2
Campos Potenciais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
2.3
Hidrodinâmica de Partículas Suavizadas . . . . . . . . . . . . . . . . . . . .
p. 18
3 Coordenação de Enxames Utilizando Modelos de Dinâmica dos Fluidos
p. 23
3.1
O Problema de Geração de Padrões . . . . . . . . . . . . . . . . . . . . . . .
p. 23
3.2
Considerações Práticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 24
3.3
Implementação do controlador . . . . . . . . . . . . . . . . . . . . . . . . .
p. 25
4 Simulações e Experimentos
p. 27
4.1
Player/Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 27
4.2
Plataforma Experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 29
4.2.1
E-pucks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 29
4.2.2
Sistema de Localização . . . . . . . . . . . . . . . . . . . . . . . . .
p. 29
Experimentos realizados . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 31
4.3
4.3.1
Experimentos com o primeiro mapa . . . . . . . . . . . . . . . . . .
p. 31
4.3.2
Experimentos com o segundo mapa . . . . . . . . . . . . . . . . . .
p. 33
4.3.3
Experimentos com o terceiro mapa . . . . . . . . . . . . . . . . . . .
p. 36
4.3.4
Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 36
5 Conclusões
p. 40
Referências Bibliográficas
p. 41
8
1
Introdução
Este capítulo está organizado da seguinte forma: na primeira seção define-se o que é a
inteligência de enxames, a robótica cooperativa e os enxames de robôs. Na segunda seção,
apresenta-se a motivação para os estudos com enxames e a importância de se realizarem experimentos com robôs reais. Na terceira seção, listam-se trabalhos relevantes em coordenação de
enxames. Por fim, apresentam-se os objetivos desta Monografia e a sua estrutura.
Este trabalho foi desenvolvido em dois Laboratórios da Universidade Federal de Minas Gerais (UFMG): o Laboratório de Otimização e Projeto Assistido por Computador - LOPAC1 , sala
2215 da Escola de Engenharia e o Laboratório de Visão Computacional e Robótica - VeRLab2 ,
salas 3020 e 3021 do Instituto de Ciências Exatas.
1.1 Enxames de robôs: a inteligência de enxames e a robótica
cooperativa
Inteligência de enxames
A inteligência de enxames é uma moderna disciplina de inteligência artificial que está voltada para a concepção de sistemas multiagentes com aplicações, por exemplo, na otimização
e na robótica. Ao invés de um controlador sofisticado que governa o comportamento global
do sistema, o princípio da inteligência de enxames é baseado em várias entidades simples que
cooperam entre si com o objetivo de exibir um comportamento desejado. A inspiração para
o projeto destes sistemas vem do comportamento coletivo de insetos sociais como formigas,
abelhas, cupins, vespas, bem como o comportamento de outras sociedades de animais, como
bando de pássaros ou cardume de peixes. Mesmo que cada membro destas sociedades seja um
indivíduo simples, eles são capazes de realizar tarefas complexas em cooperação.
Por exemplo, formigas, cupins e vespas são capazes de construir ninhos sofisticados em
1 http://gopac.cpdee.ufmg.br/.
2 http://www.verlab.dcc.ufmg.br/.
9
cooperação, sem que nenhum dos integrantes tenha um plano global de como proceder. Outro
exemplo é o comportamento de exploração que formigas ou abelhas exibem quando procuram
por comida. Enquanto as formigas utilizam uma estratégia de comunicação indireta através de
trilhas de feromônio, a fim de encontrar caminhos mais curtos entre os seus ninhos e as fontes
de alimento, as colônias de abelhas são mais eficientes na exploração de ricas fontes de comida,
realizando sua comunicação por meio de uma dança específica (BLUM; LI, 2008).
Cientistas têm aplicado esses princípios para novas abordagens, por exemplo, na otimização e no controle de robôs. Entre as propriedades que caracterizam os sistemas resultantes
estão a robustez a falhas e a flexibilidade para a execução de diferentes tarefas. O campo de pesquisa voltado para o comportamento coletivo em sistemas auto-organizados e descentralizados
é chamado inteligência de enxames.
Na otimização, há aplicações de sucesso como a otimização por colônia de formigas (ACO)
e otimização por enxame de partículas (PSO) (BLUM; LI, 2008). A ACO é uma técnica utilizada para procurar caminhos em grafos, baseando-se no comportamento observado em formigas
ao saírem de seus ninhos para encontrarem alimento. Já a PSO é aplicada em diversos tipos de
problemas, como o problema do caixeiro viajante, o treinamento de redes neurais, o controle de
tensão e potência reativa, etc.
Robótica cooperativa
A robótica cooperativa é o campo da robótica dedicado ao estudo de técnicas que permitem
que robôs agrupados em equipes cooperem entre si e com seres humanos para realizar uma dada
tarefa. Conforme (MARCOLINO; CHAIMOWICZ, 2008), ela é capaz de aumentar a robustez
e eficiência da execução de uma tarefa. O uso de times de robôs apresenta várias vantagens
sobre abordagens baseadas em um único robô. Primeiramente, dependendo do tipo de tarefa,
múltiplos robôs podem executá-la mais eficientemente mediante uma divisão do trabalho. Além
disso, grupos de robôs simples e com custo unitário mais baixo que trabalham cooperativamente
podem substituir um robô especializado cujo custo unitário é mais elevado. Ademais, aumentase a robustez em certas tarefas pelo uso de robôs que apresentam capacidade de redundância e
reconfiguração dinâmica em caso de falhas.
Na comunidade de robótica, a maioria das abordagens para planejar o movimento de grupos de robôs tem geralmente sido dividida em dois tipos: centralizada e descentralizada. As
abordagens centralizadas são aquelas que assumem a existência de uma entidade central, a qual
é capaz de planejar as ações de cada robô do grupo. Embora, em geral, se possa provar que a
utilização de tal abordagem garante sucesso na realização da tarefa, este tipo de técnica não é
10
escalável para grandes grupos de robôs por razão de limitações computacionais. Por outro lado,
abordagens descentralizadas fornecem soluções escaláveis uma vez que neste caso cada agente
do grupo planeja suas próprias ações baseadas em informações locais.
Enxames de robôs
A partir das idéias de inteligência de enxames e das abordagens de soluções descentralizadas da robótica cooperativa, surgiu o paradigma chamado enxames de robôs. Neste arcabouço,
estuda-se como um grande número de agentes relativamente simples pode ser coordenado de
modo a possibilitar um comportamento coletivo desejado a partir das interações locais entre os
agentes e o ambiente.
Conforme (SAHIN et al., 2008), a operação de um sistema de enxame robótico deve apresentar três propriedades funcionais que são observadas em enxames naturais e também são
desejáveis naqueles sistemas robóticos. Primeiramente, tem-se a robustez. O sistema de enxame robótico deve ser capaz de operar mesmo com perturbações do ambiente ou com o mau
funcionamento de seus indivíduos. Alguns fatores podem ser observados na robustez das operações dos insetos sociais: enxames são inerentemente sistemas redundantes (a perda de um
indivíduo pode ser imediatamente compensada por outro); a coordenação é descentralizada e,
conseqüentemente, é improvável que o enxame interrompa sua operação com a destruição de alguns membros; os indivíduos que compõem o enxame são relativamente simples (capacidades
limitadas de comunicação, sensoriamento e atuação), tornando-os menos propensos a falhas;
por fim, o sensoriamento é distribuído, e por isso o sistema é robusto à perturbações locais no
ambiente.
A segunda característica é a flexibilidade. Os indivíduos de um enxame devem ser capazes
de coordenarem seus comportamentos para realizar tarefas de natureza distinta. Por exemplo,
os membros de uma colônia de formigas podem encontrar o caminho mais curto para uma fonte
de comida ou transportar uma presa grande por meio da utilização de diferentes estratégias de
coordenação.
A terceira e última propriedade é a escalabilidade. O enxame deve ser capaz de operar para
uma grande faixa de tamanhos de grupos e suportar um grande número de indivíduos sem que
isso comprometa de forma considerável o desempenho. Ou seja, os mecanismos e estratégias
de coordenação a serem desenvolvidas para sistemas de enxames de robôs devem garantir o
funcionamento para diferentes tamanhos do grupo.
11
1.2 Motivação
De acordo com (SAHIN et al., 2008), até o momento a pesquisa com enxames robóticos
está principalmente voltada para a prova de conceitos em simuladores ou experimentos em
laboratórios. Na seqüência, serão descritos alguns dos problemas que têm sido abordados em
pesquisas de enxames robóticos (SAHIN et al., 2008).
Primeiramente, pode-se citar o desafio da agregação. A agregação auto-organizada (agrupamento dos indivíduos de um enxame utilizando o mínimo de informações do ambiente) é um
comportamento comum observado em organismos que vão desde bactérias até insetos sociais e
mamíferos. Comportamentos de agregação foram desenvolvidos para robôs míopes, que podem
perceber apenas uma pequena parte de todo o ambiente, confinados em uma grande arena, utilizando abordagens evolucionárias e um controlador probabilístico inspirado em insetos sociais.
Já a dispersão auto-organizada pode ser considerada como o oposto de agregação e de interesse em cenários de vigilância. Neste problema, o desafio é obter uma disseminação uniforme
do enxame de robôs no espaço, maximizando a área coberta.
O problema da exploração é inspirado pelo comportamento de formigas que procuram por
fontes de comida distribuídas ao redor de seu ninho. Aqui, o desafio é encontrar estratégias de
busca ótimas que maximizem a taxa de alimento encontrado em relação aos recursos utilizados
no ambiente.
O comportamento de automontagem é observado em formigas, onde elas formam cadeias
através de ligações entre si para construir estruturas como bóias para ficar sobre a água. O
problema da automontagem pode ser definido como a criação auto-organizada de estruturas
através da formação de conexões físicas entre os robôs do enxame.
No problema do movimento conectado, um enxame de robôs móveis, fisicamente conectados uns aos outros, devem coordenar os seus movimentos de maneira que o grupo se desloque
suavemente em ambientes com obstáculos desconhecidos, como buracos, de forma coordenada.
Cita-se também o desafio do transporte cooperativo. As formigas são conhecidas por transportar grandes presas até o seu ninho coordenando suas ações de empurrar e puxar. Essa capacidade de coordenação é útil para sistemas de enxames robóticos. Os membros do enxame
podem juntar forças de forma a gerar uma grande força resultante suficiente para puxar um objeto pesado. Esse problema está parcialmente relacionado com o movimento conectado, com a
diferença de que ele inclui um objeto passivo que precisa ser transportado.
Por fim, tem-se a formação de padrão. Este é um termo genérico para o problema de
12
como um padrão geométrico desejado pode ser obtido e mantido por um enxame de robôs sem
qualquer coordenação centralizada.
A partir das áreas de pesquisas mencionadas anteriormente, podem-se citar diversas aplicações no mundo real dos enxames robóticos: operações de pesquisa e resgate em ambientes
perigosos ou em lugares onde humanos não têm acesso, contenção de vazamento de óleo no oceano, transporte de objetos pesados, monitoramento de ambientes, vigilância, etc. Além disso,
através dos avanços esperados com o desenvolvimento da nanotecnologia, as possibilidades de
aplicações de enxames robóticos se ampliam consideravelmente. Pode-se pensar, por exemplo,
em milhões de nanorobôs sendo injetados dentro de um ser humano para combater células cancerígenas. Um enxame de nanorobôs poderia também ser útil para construir e manipular outras
nanoestruturas. Entretanto, para que se tenham aplicações bem sucedidas no futuro, é preciso
que as fundamentações teóricas sejam bem estabelecidas no momento. Além disso, é fundamental não apenas simular, mas também implementar em robôs reais as técnicas de controle de
enxames. Dessa forma, limitações de comunicação, de processamento, de sensoriamento e de
atuação podem ser evidenciadas, o que geralmente não ocorre no momento em que a teoria é
desenvolvida.
1.3 Objetivos
Este é um trabalho de foco prático. Nesse sentido, seu objetivo principal é implementar em
robôs reais a técnica de controle de enxames desenvolvida em (PIMENTA, 2009). Espera-se
com isso contribuir para que conceitos existentes sejam fortalecidos, o que possibilitará que
enxames robóticos sejam utilizados com maior freqüência em situações do mundo real.
Além disso, os objetivos específicos compreendem:
• Estudo de técnicas do estado da arte para o controle de enxames de robôs;
• Estudo de ambientes de simulação realísticas utilizados pela comunidade de robótica
mundial;
• Implementação de técnicas para o controle de enxames em simuladores;
• Estudo dos robôs para enxames e a plataforma experimental desenvolvida no VeRLab/DCC,
UFMG;
• Realização de experimentos e análise dos resultados.
13
1.4 Estado da Arte
Um projeto mundialmente conhecido na comunidade da robótica cooperativa é o chamado
Swarm-bots (SWARM-BOTS, 2009). Trata-se de uma nova abordagem para a concepção e implementação de sistemas auto-organizáveis e auto-montáveis. Esses sistemas são compostos por
robôs autônomos simples, chamados s-bots, com capacidades computacionais, sensoriais e de
atuação limitadas. Entretanto, os s-bots podem criar conexões físicas entre eles, formando um
swarm-bot que é capaz de resolver problemas que isoladamente não poderiam ser enfrentados,
tais como terrenos irregulares, passagens estreitas, buracos ou fendas, como ilustra a Figura 1.1.
Trabalhos como (TRIANNI; NOLFI; DORIGO, 2006) e (DORIGO et al., 2006) estudaram o
movimento coordenado de swarm-bots.
Figura 1.1: Configuração de um swarm-bot para vencer o espaço entre dois tijolos (SWARMBOTS, 2009).
Outro interessante projeto na área de enxames trata-se das Unidades de Eliminação de Poluentes derivados do Petróleo no Mar (EU-MOP - Elimination Units for Marine Oil Pollution)
(EU-MOP, 2009). O conceito básico do EU-MOP, conforme (FRITSCH; WEGENER; SCHRAFT, 2007), é o seguinte: após a detecção de um vazamento de óleo, os robôs EU-MOP são
transportados até a área operacional por um navio de apoio. Em seguida, eles começam a recolher o óleo até que seja atingido seu limite de capacidade ou energia. Quando isso ocorre,
os robôs EU-MOP se deslocam até o navio de apoio, recarregam suas baterias e esvaziam seus
reservatórios. Este processo se repete até que o óleo seja retirado do oceano. A Figura 1.2
apresenta uma simulação deste processo.
Uma nova abordagem na coordenação de grandes grupos de robôs foi desenvolvida por
(MARCOLINO; CHAIMOWICZ, 2008). Neste trabalho, os autores desenvolveram um algoritmo que permite um enxame de robôs navegar em um ambiente que contém obstáculos desconhecidos. Robôs que podem ficar parados em regiões de mínimo local são auxiliados por outros,
14
Figura 1.2: Simulações de robôs EU-MOP retirando o petróleo derramado em um ambiente
marinho (FRITSCH; WEGENER; SCHRAFT, 2007).
de resgate, após chegarem ao lugar desejado. Experimentos foram realizados utilizando-se um
simulador realístico e um grupo de robôs reais e os resultados obtidos mostraram a viabilidade
da abordagem proposta, conforme mostra a Figura 1.3.
Figura 1.3: Seqüência de fotos que confirmam a viabilidade da abordagem desenvolvida (MARCOLINO; CHAIMOWICZ, 2008).
Além das propostas apresentadas acima, existem inúmeras técnicas desenvolvidas para a
coordenação de enxames de robôs. As estratégias que serão discutidas, simuladas e implementadas neste trabalho foram desenvolvidas em (PIMENTA, 2009). O enxame foi modelado como
um fluido imerso numa região onde um campo de forças externas livre de mínimos locais é definido. Neste caso, o autor utilizou o método de Hidrodinâmica de Partículas Suavizadas (HPS)
para modelar o "fluido robótico", isto é, as interações entre robôs do grupo. O Método de Elementos Finitos (MEF) também foi utilizado para calcular os campos vetoriais que determinam
as forças externas.
1.5 Organização da Monografia
Esta Monografia está dividida em cinco Capítulos. O Capítulo 1 compreende a introdução
deste trabalho. O Capítulo 2 apresenta conceitos, definições e ferramentas utilizados ao longo
do texto e do trabalho. O Capítulo 3 apresenta as técnicas de controle utilizadas bem como a
sua implementação. O Capítulo 4 contém a descrição dos experimentos realizados e a análise
dos resultados obtidos. O Capítulo 5 trata das conclusões gerais e apresenta sugestões para
trabalhos futuros.
15
2
Definições, nomenclatura e
ferramentas
O objetivo deste capítulo é apresentar os conceitos, definições, metodologias e ferramentas que serão utilizados ao longo desta monografia. Na primeira seção define-se o espaço de
configurações. Na segunda seção, apresentam-se os campos potenciais artificiais que são utilizados na navegação de robôs. Por fim, é apresentada a Hidrodinâmica de Partículas Suavizadas,
técnica esta utilizada para a coordenação de enxames robóticos.
2.1 Espaço de Configurações
O espaço de trabalho W de um robô R compreende a região do mundo que ele pode, a
princípio, alcançar. No caso de robôs móveis, usualmente têm-se espaços de trabalho em duas
dimensões (2D) e três dimensões (3D). Normalmente, há algumas regiões proibidas dentro de
W que são chamadas obstáculos, O = {O1 , O2 , . . . , On }.
Já o espaço de configurações corresponde a um formalismo matemático para representar o
robô e seu espaço de trabalho. A configuração q de um robô R é um vetor capaz de caracterizar
completamente a localização de R em W. Por exemplo, considere a Figura 2.1, onde um robô
móvel, representado por um ponto de referência G, navega em uma superfície plana. A configuração q = [x, y, θ ]T do robô é composta pelas coordenadas x e y de G e a orientação θ do robô.
Por conseguinte, o espaço de configuração C é o conjunto de todas as configurações possíveis
do robô.
Os obstáculos são representados no espaço de configurações do robô como um conjunto de
configurações proibidas, Cobst . Já o espaço de configurações livre é dado por F = C \ Cobst , ou
seja, o que resta do espaço de configurações após a subtração de Cobst .
16
Figura 2.1: Um robô é representado por um ponto em seu espaço de configurações (PEREIRA,
2003).
2.2 Campos Potenciais Artificiais
Um dos problemas mais estudados na literatura robótica é o problema da navegação, que
consiste em levar um robô R com configuração q de sua configuração inicial, q0 , até a configuração desejada, qd , em um tempo finito, movendo-se apenas em seu espaço de configurações
livre F, ou seja, sem se colidir com obstáculos (LATOMBE, 1991).
Uma das técnicas mais populares para se tratar o problema da navegação é a baseada em
Campos Potenciais Artificiais (KHATIB, 1986). Esta técnica é baseada numa função de potencial, φ (q), que é projetada para ter um mínimo no alvo e um máximo nas fronteiras dos
obstáculos. A idéia chave é usar o gradiente descendente, −∇φ (q), para conduzir o robô até
o destino. O gradiente descendente pode ser tratado como uma força virtual que repele o robô
dos obstáculos e o atrai em direção ao alvo. Como os campos artificiais são definidos para todo
o espaço livre, são determinadas implicitamente trajetórias a partir de qualquer configuração
inicial até o objetivo.
Abordagens tradicionais de campo artificial apresentam o problema do mínimo local na
função de potencial, o que causa problemas na convergência paro o alvo. A Figura 2.2 apresenta
um exemplo de um mínimo local causado pela presença de um obstáculo em forma de U. Como
a força virtual de atração é igual em módulo mas possui sentido contrário à força virtual de
repulsão no ponto onde o robô se encontra, ele fica preso dentro do obstáculo e nunca atinge o
alvo.
Para lidar com este problema, foi desenvolvida uma técnica de construção de potenciais
artificiais sem mínimos locais, denominados funções de navegação (RIMON; KODITSCHEK,
1992). Uma função de navegação é definida como um mapeamento φ : F → [0, 1] que é:
1. suave em F, ou seja, ela possui derivadas de segunda ordem contínuas;
2. polar em qd , isto é, existe um único mínimo, localizado em qd ;
17
Figura 2.2: Mínimo local causado por um obstáculo em forma de U.
3. admissível em F, ou seja, na fronteira de F é uniformemente máxima;
4. uma função de Morse, isto é, os pontos críticos não são degenerados.
Em geral funções de navegação são difíceis de serem calculadas para ambientes genéricos.
De forma a contornar essa limitação, utilizam-se funções harmônicas projetadas de forma a
atender às propriedades das funções de navegação. As funções harmônicas são soluções da
Equação de Laplace, que é dada por
∇2 φ = 0,
(2.1)
onde φ é uma função harmônica e ∇2 é o operador Laplaciano. Para possibilitar o cálculo
das funções harmônicas de forma eficiente para geometrias quaisquer, utiliza-se o Método de
Elementos Finitos (MEF), através do FEMM, Finite Element Method Magnetics. O FEMM é
um conjunto de programas para resolver problemas eletromagnéticos no domínio bidimensional
(MEEKER, 2007). O programa abrange Problemas Magnéticos, Eletrostáticos e de Fluxos de
Calor e Corrente. O FEMM é dividido em três módulos. O primeiro é o módulo de interface,
através do qual o usuário define o seu problema (Figura 2.3). O segundo é composto pelo
programa Triangle (SHEWCHUK, 1996), que é utilizado para gerar uma malha na região de
solução segundo a triangulação de Delaunay. Por fim, há o módulo de resolução do sistema
linear resultante.
Para encontrar a função de navegação, responsável por gerar a força externa que conduz
cada membro do enxame até o alvo, utiliza-se o FEMM. O uso do programa é simples. Primeiramente, define-se o tipo de problema: eletrostático, uma vez que a Equação de Laplace governa
este problema na ausência de cargas. Em seguida, através de pontos e segmentos de retas e de
arcos, desenha-se o mapa. Em seguida, se estabelecem os valores dos potenciais dos compo-
18
Figura 2.3: Programa FEMM: ferramenta para solução numérica de problemas eletromagnéticos.
nentes do mapa: zero para os contornos da região alvo e um valor diferente de zero para os
demais contornos. Então, define-se a propriedade elétrica dos materiais que preenchem o mapa
e gera-se a malha de triângulos (o tamanho da malha pode ser ajustado). Por fim, gera-se a solução do problema: os potenciais para cada vértice dos triângulos que formam a malha. Como
saída, o FEMM gera um conjunto de arquivos com as soluções do problema. Tais arquivos são
utilizados posteriormente como entrada do programa de controle dos robôs.
2.3 Hidrodinâmica de Partículas Suavizadas
A Hidrodinâmica de Partículas Suavizadas1 (HPS) (LIU; LIU, 2003) é uma técnica numérica sem malhas, Lagrangiana, baseada em partículas, que foi primeiramente utilizada para
resolver problemas em astrofísica. Ela é uma técnica baseada em partículas porque utiliza um
conjunto de partículas distribuídas arbitrariamente para representar o estado do sistema. Ela é
sem malhas devido ao fato de que não é necessário gerar uma malha para providenciar a co1 Do
inglês, Smoothed Particle Hydrodynamics (SPH)
19
nectividade das partículas como no caso do método dos elementos finitos ou do método das
diferenças finitas. Ao invés disso, utiliza-se uma função de interpolação. Por fim, a HPS é
considerada um método Lagrangiano porque as partículas não são fixas no espaço enquanto o
material se move. Ao contrário, as partículas são ligadas ao material e se deslocam com o fluxo.
Devido a todas essas características, esta técnica tem sido amplamente utilizada para resolver
problemas de dinâmica de fluidos, nos quais questões como grandes deformações e fronteiras
móveis aparecem com muita freqüência. Na maioria das vezes esses problemas são de difícil
solução quando se adotam outros métodos numéricos, tais como elementos finitos e diferenças
finitas.
A HPS é baseada na representação integral de uma função:
Z
f (x) =
Ω
f (x0 )δ (x − x0 )dx0 ,
onde Ω é o volume que contém x e δ (x − x0 ) é a função delta de Dirac dada por

Z
∞ se x = x0
0
δ (x − x ) =
e
δ (x − x0 )dx0 = 1.
0 se x 6= x0
Ω
(2.2)
(2.3)
Se a função delta for substituída por uma função de suavização W(x−x0 , h), a representação
integral é aproximada por
f (x) ∼
= h f (x)i =
Z
Ω
f (x0 )W(x − x0 , h)dx0 ,
(2.4)
onde h f (x)i é uma aproximação de f (x), W é chamada de função núcleo de suavização2 , núcleo
de suavização ou simplesmente núcleo na literatura HPS, e h é o raio de suavização3 que define
a área de influência de W.
A função núcleo é fundamental na HPS não apenas porque determina como funções devem
ser aproximadas e a dimensão do domínio de suporte das partículas, mas também por derivar
a consistência, e conseqüentemente a precisão, da aproximação das partículas. A escolha do
núcleo deve satisfazer:
Z
Ω
W(x − x0 , h)dx0 = 1
e
lim W(x − x0 , h) = δ (x − x0 ).
h→0
(2.5)
Além disso, a função de suavização deve ser diferenciável, já que seu gradiente é necessário em várias aplicações. Freqüentemente, escolhe-se uma função par e também com suporte
2 Do
3 Do
inglês, smoothing kernel function
inglês, smoothing length
20
compacto controlado pelo parâmetro h. As funções splines cúbicas (MONAGHAN, 1992) satisfazem as propriedades anteriores e para duas dimensões são dadas por:



1 − 32 κ 2 + 34 κ 3 se 0 ≤ κ < 1



10
1
3
W(r, h) =
se 1 ≤ κ < 2 ,
4 (2 − κ )
7π h2 



0
se κ ≥ 2
(2.6)
onde κ = krk/h. O suporte dessa função é dado por 2h. A Figura 2.4 apresenta essa função
quando ela está centrada na origem e o parâmetro h é igual a 1.
Figura 2.4: Gráfico da função núcleo W com h = 1.
A integral contínua em (2.4) pode ser convertida em um somatório de todas as N partículas
no domínio de suporte de x. Isso pode ser feito considerando que uma partícula j tem um
volume ∆V j que está relacionado com a massa m j da partícula por
m j = ∆V j ρ j ,
(2.7)
onde ρ j é a densidade da partícula. Assim, substituindo dx0 por ∆V j , temos que
N
h f (x)i ≈
mj
f (x j )W(x − x j , h).
j=1 ρ j
∑
(2.8)
21
Derivadas espaciais de f podem ser aproximadas. Utilizando integração por partes, é possível escrever a derivada espacial de f em termos do gradiente do núcleo
N
mj
f (x j )∇x W(x − x j , h),
j=1 ρ j
∑
h∇x f (x)i ≈
(2.9)
onde ∇x é o gradiente em relação a x.
É interessante observar que a aproximação por partículas em (2.8) e (2.9) introduz massa e
densidade nas equações. Como a densidade é uma variável chave em problemas hidrodinâmicos, essa aproximação pode ser convenientemente aplicada em muitos problemas. De acordo
com (LIU; LIU, 2003) essa é provavelmente uma das principais razões para que o método HPS
seja popular em problemas de dinâmicas de fluidos.
Três equações governam a dinâmica de fluidos: (i) conservação de massa; (ii) conservação
de momento; e (iii) conservação de energia. Para fluidos compressíveis, na ausência de fluxo de
calor, as equações de conservação HPS resultantes para a partícula i são (MONAGHAN, 1992):
ρj =
∑ m j Wi j ,
(2.10)
j=1
dvi
= − ∑ mj
dt
j=1
dei 1
=
dt
2
Ã
Ã
∑ mj
j=1
!
Pj
Pi
+
+ Πi j ∇i Wi j + fi ,
ρi2 ρ 2j
(2.11)
!
Pj
Pi
+
+ Πi j vi j · ∇i Wi j ,
ρi2 ρ 2j
(2.12)
onde Wi j = W(xi − x j , h), v é a velocidade, vi j = vi − v j , fi é a soma das forças externas normalizada pela massa mi , P é pressão hidrostática e e é a energia interna por unidade de massa. O
termo Πi j é uma viscosidade artificial adicionada para lidar com choques e pode ser dada por:


Πi j =
1
2
ρi j (−ξ1 ci j µi j + ξ2 µi j )
0
se vi j · xi j < 0
,
(2.13)
se vi j · xi j ≥ 0
onde
µi j =
hvi j · xi j
.
kxi j k2 + η 2
(2.14)
Em (2.13), ρi j é a média entre as densidades das partículas i e j, ξ1 e ξ2 são constantes de
viscosidade e ci j é a média das velocidades do som. Em (2.14), η 2 é um termo para evitar singularidades. Ele deve ser pequeno o suficiente para evitar grandes suavizações na viscosidade.
Usualmente, η 2 é feito igual a 0,01h2 .
22
A modelagem de fluidos incompressíveis pode ser feita utilizando a seguinte equação de
estado (MONAGHAN, 1994):
·µ
Pi = Bi
ρi
ρ0
¶γ
¸
−1 ,
(2.15)
onde ρ0 é a densidade de referência (1000 Kg/m3 no caso da água), γ é uma constante relacionada a calores específicos e Bi é o chamado módulo Bulk. Este módulo está relacionado à
compressibilidade do fluido e pode representado por (ROY, 1995):
Bi =
200ρi gH
,
γ
(2.16)
onde H é a profundidade máxima do fluido e g é a constante gravitacional.
A velocidade do som na partícula i, que representa a velocidade com que o som se propaga
através do elemento de fluido representado pela partícula, é dada por (ROY, 1995):
s
γ (Pi + Bi )
ci =
.
ρi
(2.17)
Essas são as equações base no que se refere a HPS para se utilizar a abordagem baseada em
fluidos para o controle de enxame de robôs (PIMENTA, 2009). Maiores detalhes sobre a HPS
e as equações apresentadas nesta seção podem ser encontrados em (LIU; LIU, 2003).
23
3
Coordenação de Enxames Utilizando
Modelos de Dinâmica dos Fluidos
Neste capítulo é apresentado um problema clássico de coordenação de enxames robóticos,
sua solução via modelos de dinâmica dos fluidos e a implementação do controlador. Na primeira
seção, definem-se o problema de geração de padrões, assim como sua solução. Na segunda
seção, fazem-se considerações acerca de restrições práticas do mundo real. Por fim, apresentamse detalhes da implementação do controlador.
3.1 O Problema de Geração de Padrões
O problema de geração de padrões pode ser definido como (PIMENTA, 2009):
Problema 3.1. Seja um grupo de N robôs com distribuição espacial inicial qualquer e o ambiente com obstáculos estáticos definindo um domínio compacto Ω ⊂ R2 e uma curva Γ : I → Ω,
onde I ⊂ R. Encontre um controlador que guie os robôs para formar o padrão descrito por Γ
sem colidir uns com os outros e sem colidir com os obstáculos estáticos.
Para simplificar o problema, o autor faz duas considerações. Primeiro, que o número de
robôs é suficientemente grande para aproximar-se adequadamente o padrão desejado e, ao
mesmo tempo, é suficientemente pequeno para garantir que haja espaço ao longo da curva
para todos os robôs. A segunda consideração é que os robôs são capazes de estimar posições e
velocidades deles mesmos e de outros robôs do grupo localizados a uma distância D.
Para resolver esse problema, considera-se que cada robô do time é uma partícula HPS
sujeita a uma força externa. Como as funções núcleo possuem suporte compacto, é possível
derivar leis de controle descentralizadas baseadas nas equações da HPS. Os controladores são
descentralizados no sentido de que apenas informação local é necessária: o campo externo na
posição do robô e posições e velocidades de robôs vizinhos. Para um robô i com configuração
24
qi = [xi , yi ]T , os robôs vizinhos são definidos como aqueles no conjunto de vizinhança Ni :
Ni = { j 6= i | kq j − qi k < D},
(3.1)
onde a distância D é determinada pelo tamanho do suporte da função núcleo.
Além disso, assume-se, inicialmente, que os robôs são pontuais e holonômicos com modelo
dado por:
q̈i = ui (q, q̇,t),
(3.2)
onde q = [qT1 , . . . , qTN ]T é a configuração do grupo.
Então, para resolver o problema de geração de padrões, (PIMENTA, 2009) propõem o
controlador:
ui (q, q̇) = k1 bi − k2 vi + k3 fi ,
(3.3)
onde k1 , k2 e k3 são constantes positivas de ajuste e
!
Ã
Pj
Pi
bi = − ∑ m j
+
+ Πi j ∇i Wi j ,
ρi2 ρ 2j
j
fi =

− ∇φ (qi )
k∇φ (q )kβ
se ∇φ (qi ) 6= 0

0
se ∇φ (qi ) = 0
i
,
(3.4)
(3.5)
onde β é um número inteiro não-negativo.
Em (3.3), o termo bi , baseado nas equações HPS, é utilizado para controlar as interações
entre os robôs com o objetivo de se evitar colisões e fazer com que o enxame siga uma densidade
de referência. O termo k2 vi é dissipativo, vi é a velocidade do robô, e contribui para melhorar a
estabilidade do sistema. Por fim, o termo fi é responsável por guiar os robôs até o destino.
Deve-se mencionar que ui (q, q̇) em (3.3) pode ser calculado levando-se em consideração
apenas os robôs na vizinhança definida por Ni em (3.1). Isso acontece devido ao suporte compacto da função núcleo, W, que garante que os robôs fora da vizinhança em questão não contribuam para o somatório em (3.4).
3.2 Considerações Práticas
Devem-se realizar adaptações na solução para o problema de geração de padrões apresentada na seção anterior, de modo que ela possa ser implementada em robôs reais (PIMENTA,
2009). As considerações feitas são apresentadas a seguir.
25
Robôs não pontuais
O fato dos robôs reais não serem pontuais é tratado por meio de uma adaptação da viscosidade artificial, (2.13), página 21, uma vez que este termo garante termos repulsivos que evitam
colisões entre partículas. A adaptação é dada por:
µi j =
hvi j · qi j
,
(kqi j k − (2R + ε ))2
(3.6)
onde R é o raio do robô e ε é um fator de segurança.
Restrições não-holonômicas
As restrições não-holonômicas são tratadas através da técnica de linearização por realimentação de estados:
" #
υ
"
# " #
cos(θ ) sin(θ )
x˙d
=
·
,
ω
− sin(dθ ) cos(d θ )
y˙d
(3.7)
onde υ é a velocidade linear, ω é a velocidade angular e d é a distância do ponto de referência
da linearização ao centro do robô. O vetor de entrada [x˙d , y˙d ]T corresponde às velocidades
desejadas e para obtê-las é necessário integrar a aceleração calculada pelo controlador em (3.3).
Partículas virtuais
As partículas virtuais são colocadas sobre as fronteiras dos obstáculos. Tais partículas são
utilizadas para garantir que não existam colisões entre robôs e obstáculos, uma vez que as forças
externas podem ser insuficientes para evitar tais colisões.
3.3 Implementação do controlador
O controlador para os agentes do enxame foi escrito na linguagem de programação C++.
Como o objetivo é obter um controle descentralizado, o programa foi escrito para que todos os
robôs rodassem o mesmo código, sem a necessidade de um servidor central. Assim, além das
Classes que representam o método HPS e o Campo Vetorial, foi necessário implementar uma
forma de comunicação descentralizada entre os clientes.
Para se guiar, cada robô do enxame necessita de dois conjuntos de informações: o seu
campo vetorial e algumas propriedades HPS de seus vizinhos. Para se informar sobre o campo
vetorial, todos os robôs tem acesso a um mesmo mapa, gerado pelo FEMM. Já para receber e
26
enviar informações aos seus vizinhos, a estratégia utilizada foi um broadcast através de socket
UDP1 .
Quando o controlador é inicializado, cria-se uma thread, através da biblioteca boost, para
ficar recebendo as mensagens enviadas pelo enxame. O motivo de se utilizar um processo independente para receber informações é que os cálculos do controlador podem ser feitos concorrentemente. Quando um robô recebe um pacote de dados de outro membro, a primeira providência
é verificar se o remetente da mensagem está na vizinhança do robô. Caso não esteja, o pacote
é descartado. Essa foi a forma utilizada para simular o fato de que as interações entre os robôs
se limitam ao seu raio de ação. Dentre as informações que são trocadas entre os robôs, têm-se
os seguintes atributos: o identificador do robô, a posição (x, y), a velocidade (ẋ, ẏ), a massa, a
densidade e a pressão.
Figura 3.1: Diagrama representativo do controlador.
O diagrama da Figura 3.1 representa o funcionamento do controlador descentralizado. Para
instanciar o controlador, é necessário passar como parâmetro o identificador do robô. Em seguida, cria-se a malha, o fluido e as conexões. Para receber dados de broadcast, um processo
é criado. Então, dois processos ficam executando ciclicamente: o controlador (Figura 3.1 à
esquerda), que realiza os cálculos, e o receptor de dados (Figura 3.1 à direita), que recebe os
pacotes UDP de broadcast e atualiza a lista de vizinhos do robô.
1 User
Datagram Protocol
27
4
Simulações e Experimentos
Neste capítulo apresentam-se o simulador e a plataforma experimental utilizada, bem como
os resultados experimentais obtidos para o problema de geração de padrões. Três mapas diferentes foram propostos. Os vídeos dos experimentos apresentados neste capítulo encontram-se
no site http://www.cpdee.ufmg.br/~lucpim/mateusmb/.
4.1 Player/Stage
O Projeto Player oferece ferramentas de Software Livre para aplicações de robótica móvel,
especialmente em sistemas multi-robôs (GERKEY; VAUGHAN; HOWARD, 2003). O Player
proporciona uma interface de rede para uma variedade de sensores e robôs. O modelo cliente /
servidor do Player permite que programas para o controle de robôs sejam escritos em qualquer
linguagem de programação e rodem em qualquer computador que esteja conectado ao robô. O
Player suporta múltiplas conexões de clientes concorrentes, oferecendo a possibilidade para o
controle distribuído.
Para a realização de simulações, o Projeto Player oferece duas ferramentas: o Stage (Figura
4.1), para simulações em 2D, e o Gazebo, para simulações em 3D. Como o espaço de configurações deste trabalho é em duas dimensões, utilizou-se o Stage para a realização das simulações.
Entre as vantagens de se utilizar simuladores como Stage antes da implementação em robôs
reais, pode-se citar a necessidade de um tempo menor para o ajuste do controlador, o menor
desgaste dos acionamentos dos robôs e a facilidade para a transição simulação/experimento, já
que toda a comunicação é realizada via rede (é transparente se o controlador está conectado a
um robô de simulação ou um robô real).
As simulações realizadas neste trabalho foram utilizadas principalmente para se determinar
os valores das constantes do controlador (Tabela 4.1). Após esta etapa, foram realizados experimentos sem alterações nestes parâmetros e sem praticamente nenhuma alteração no código
do controlador: modificou-se o sistema de localização, para que câmeras (Seção 4.2.2) fossem
28
Figura 4.1: Stage: uma ferramenta para simulação utilizada na robótica.
utilizadas.
Tabela 4.1: Parâmetros do controlador
Parâmetro
k1
k2
k3
h
R
ε
d
ξ1
ξ2
γ
ρ0
m
H
Valor
0,001
1,5
0,04
11,6 cm
3,5 cm
3,5 mm
7 mm
1
2
1
1000 Kg/m3
26,33 Kg
0,01 m
29
4.2 Plataforma Experimental
4.2.1
E-pucks
Os e-pucks são robôs projetados para auxiliarem o ensino em disciplinas relacionadas à
robótica móvel (MONDADA et al., 2009). Alguns de seus componentes são: uma câmera com
resolução de 640x480 pixels, oito sensores infra-vermelho, dez LEDs, três microfones, um altofalante, um acelerômetro 3D, dois motores de passo, e duas portas seriais, sendo que uma delas
está ligada a um dispositivo bluetooth. O e-puck contém um dcPIC modelo 30F6014A, que é
programável por meio da interface bluetooth.
Figura 4.2: Dois e-pucks do VeRLab(GARCIA, 2008).
Para a realização de experimentos de enxames robóticos, o VerLab possui 12 e-pucks, como
os da Figura 4.2. Uma das formas de se construir programas para controlá-los é através da
biblioteca disponível em seu site oficial http://www.e-puck.org/. Entretanto, essa opção
apresenta algumas desvantagens, entre elas estão a capacidade limitada do dsPIC (64 MHz de
processamento, 8kB de RAM e 144 kB de memória flash) quando comparado a um PC, a única
linguagem de programação disponível é C, e o código dos programas que forem feitos não será
portável para outros robôs.
Uma forma de contornar estes problemas é construir o programa utilizando o Player. Foi
desenvolvido no VerLab um driver do Player para os e-pucks. Em (GARCIA, 2008), o autor
explica como utilizar o driver desenvolvido nos e-pucks. Dessa forma, o controlador roda em
PCs e se comunica com o driver do e-puck via dispositivo bluetooth.
4.2.2 Sistema de Localização
A localização na robótica móvel através da odometria apresenta limitações, pois é comum
que as rodas do robô derrapem devido a, por exemplo, pisos irregulares ou escorregadios e
30
grandes acelerações. Caso o mapa de navegação seja conhecido, pode-se combinar a odometria
com métodos probabilísticos para se estimar a posição do robô. Entretanto, isso requer alta
capacidade sensorial e computacional. No caso de ambientes externos, pode-se utilizar também
o GPS1 .
Figura 4.3: Sistema de localização por câmeras do VerLab (GARCIA et al., 2007).
Para a realização de experimentos com os e-pucks no VerLab, foi desenvolvido um arcabouço para a localização de enxames (GARCIA et al., 2007; GARCIA; CHAIMOWICZ, 2009),
como mostra o diagrama da Figura 4.32 . Ele é composto por um conjunto de câmeras fixado
sobre a área de trabalho e um sistema de software, Silvver (SILVVER, 2009), capaz de localizar
e identificar os robôs através de marcos geométricos (biblioteca ARToolkitPlus) colocados sobre
eles (Figura 4.4). Cada câmera possui uma calibração intrínseca (foco, distorção radial, etc) e
uma calibração extrínseca (matriz de transformação de coordenadas). A calibração intrínseca
foi feita utilizando-se a biblioteca OpenCV.
Figura 4.4: Exemplos de marcos visuais da biblioteca ARToolkitPlus (GARCIA et al., 2007).
1 Global
2 Projeto
Positioning System
parcialmente financiado com recursos do CNPq e da Fapemig
31
4.3 Experimentos realizados
Para a realização dos experimentos de geração de padrão com os 12 e-pucks, três tipos de
mapas foram propostos. As Figuras 4.5, 4.6 e 4.7 ilustram esses mapas, com suas malhas e
campos vetoriais, obtidos via FEMM. O primeiro mapa, Figura 4.5, foi construído para que o
enxame se espalhasse ao longo da região em forma de estrela. No segundo e terceiro mapa,
Figuras 4.6 e 4.7, o enxame deveria preencher uma região alvo circular (raio de 30 cm ± 2,5
cm). Enquanto o segundo mapa contém dois obstáculos retangulares (55 x 2,5 cm), um de cada
lado, o terceiro mapa contém apenas um obstáculo (também de 55 x 2,5 cm).
Figura 4.5: Espaço de configurações, malha e campo elétrico do primeiro mapa.
4.3.1 Experimentos com o primeiro mapa
No primeiro mapa, Figura 4.5, foram realizados experimentos com três configurações iniciais diferentes: 12 e-pucks no interior da estrela; 12 e-pucks no exterior da estrela; e 6 e-pucks no
interior e 6 no exterior da estrela. Todos os experimentos apresentaram resultados semelhantes
e por isso apenas o terceiro caso será descrito aqui.
A Figura 4.8 apresenta uma seqüência de imagens que ilustra a evolução do experimento.
A Figura 4.9 apresenta a trajetória dos e-pucks segundo o sistema a localização por câmeras. A
Figura 4.10 contém a densidade dos e-pucks ao longo do experimento. Como pode-se observar
32
Figura 4.6: Espaço de configurações, malha e campo elétrico do segundo mapa.
Figura 4.7: Espaço de configurações, malha e campo elétrico do terceiro mapa.
33
nas Figura 4.8d e 4.9, o enxame alcançou a região alvo. Já na Figura 4.10, vê-se que a densidade
converge para valores ao redor do valor de referência (1000 Kg/m3 ). Não houve colisões entre
os membros do enxame.
(a)
(b)
(c)
(d)
Figura 4.8: Evolução do experimento no primeiro mapa: (a) 0%. (b) 33%. (c) 67%. (d) 100%.
4.3.2 Experimentos com o segundo mapa
No segundo mapa, Figura 4.6, foram realizados experimentos com a seguinte configuração
inicial: 6 e-pucks do lado direito e 6 do lado esquerdo.
A Figura 4.11 apresenta uma seqüência de imagens que ilustra a evolução do experimento.
A Figura 4.12 apresenta a trajetória dos e-pucks segundo o sistema a localização por câmeras. A
Figura 4.13 contém a densidade dos e-pucks ao longo do experimento. Como pode-se observar
nas Figura 4.11d e 4.12, o enxame alcançou a região alvo. Já na Figura 4.13, vê-se que a
densidade converge para valores ao redor do valor de referência (1000 Kg/m3 ). Não houve
colisões entre os membros do enxame e, como mostra a Figura 4.12, também não houve colisões
com os obstáculos.
34
Figura 4.9: Trajetória descrita pelo enxame no primeiro mapa.
Figura 4.10: Densidade dos robôs ao longo do experimento no primeiro mapa.
35
(a)
(b)
(c)
(d)
Figura 4.11: Evolução do experimento no segundo mapa: (a) 0%. (b) 33%. (c) 67%. (d) 100%.
Figura 4.12: Trajetória descrita pelo enxame no segundo mapa.
36
Figura 4.13: Densidade dos robôs ao longo do experimento no segundo mapa.
4.3.3 Experimentos com o terceiro mapa
No terceiro mapa, Figura 4.7, foram realizados experimentos com a seguinte configuração
inicial: os 12 e-pucks lado direito, atrás do obstáculo.
A Figura 4.14 apresenta uma seqüência de imagens que ilustra a evolução do experimento.
A Figura 4.15 apresenta a trajetória dos e-pucks segundo o sistema a localização por câmeras. A
Figura 4.16 contém a densidade dos e-pucks ao longo do experimento. Como pode-se observar
nas Figura 4.14d e 4.15, o enxame alcançou a região alvo. Já na Figura 4.16, vê-se que a
densidade converge para valores ao redor do valor de referência (1000 Kg/m3 ). Não houve
colisões entre os membros do enxame e, como mostra a Figura 4.15, também não houve colisões
com os obstáculos.
4.3.4 Análise
Nos experimentos realizados, as iterações do controlador ocorriam a uma taxa de aproximadamente 10 Hz. Os e-pucks, durante os experimentos, deslocavam-se em uma mesa de
aproximadamente 1,5 x 0,9 m. Como os desenhos dos mapas feitos na mesa foram do espaço
de configuração (e não do espaço de trabalho), controlava-se o centro dos robôs. Ou seja, apenas
o centro dos robô não poderia colidir com os obstáculos.
37
(a)
(b)
(c)
(d)
Figura 4.14: Evolução do experimento no terceiro mapa: (a) 0%. (b) 33%. (c) 67%. (d) 100%.
Figura 4.15: Trajetória descrita pelo enxame no terceiro mapa.
38
Figura 4.16: Densidade dos robôs ao longo do experimento no terceiro mapa.
Conforme já mencionado, todos os experimentos foram realizados com sucesso: o enxame
alcançou e manteve o padrão desejado, a densidade dos robôs convergiu para valores ao redor
do valor de referência e não houve colisões entre os membros do enxame e nem do centro dos
robôs com os obstáculos.
Para realizar a comunicação entre o computador que executava o código do controlador e
o driver que rodava nos e-pucks, utilizou-se dois dispositivos bluetooth (cada um suporta até 7
conexões). Uma das maiores dificuldades da experimentação foi essa comunicação: algumas
vezes era difícil estabelecer uma conexão, outras vezes a comunicação falhava durante o experimento. Acredita-se que este problema possa estar relacionado a duas causas: a rede wireless
do VeRLab e/ou ao código do Player para o e-puck.
Outra dificuldade encontrada na parte experimental foi a calibração intrínseca das câmeras. Após o processamento das imagens capturadas pela câmera, ainda havia uma distorção
considerável. A Figura 4.17 apresenta uma sequência de imagens representando as trajetórias
em quatro experimentos realizados com o segundo mapa. Como pode-se observar, há uma
maior dispersão dos pontos nas partes esquerda das imagens. Isso era esperado devido a essa
dificuldade de calibração. Apesar disso, os experimentos não foram comprometidos.
Conforme mencionado na seção 4.2.2, utilizar apenas a odometria dos robôs como forma
de localização pode acarretar em grandes erros. A Figura 4.18 reforça esse fato.
39
Figura 4.17: Sequência de imagens de experimentos no segundo mapa evidenciando as dificuldades de calibração da câmera.
Figura 4.18: Localização dos robôs baseada na odometria em um experimento com o segundo
mapa.
40
5
Conclusões
Neste trabalho implementou-se uma técnica de controle de enxames de robôs baseada na
Hidrodinâmica de Partículas Suavizadas (HPS) e no Método de Elementos Finitos. Os experimentos realizados utilizaram 12 robôs e-pucks, um sistema de localização por câmeras e o
Player como interface entre o hardware dos robôs e o código do controlador. A comunicação
do controlador, implementado num computador, com os e-pucks se deu através de dispositivos bluetooth. Simulações para o ajuste dos parâmetros do controlador foram feitas através do
Stage. Foram realizados experimentos em três tipos de mapas. Em todos, buscou-se resolver
problemas de geração de padrões. Os experimentos foram bem sucedidos, tendo em vista que
a região alvo foi alcançada pelos e-pucks, a densidade do enxame convergiu para uma densidade próxima da referência e não houve colisões entre os membros do enxame nem do enxame
com os obstáculos. Com isso, a técnica de controle baseada na HPS estudada nesta monografia
mostrou-se eficaz para a coordenação de enxames robóticos.
Durante a implementação do controlador nos enxames, houve algumas dificuldades. Primeiramente, foi difícil conseguir uma calibração intrínseca das câmeras do sistema de localização. Posteriormente, ocorreram problemas de comunicação (via bluetooth) entre o computador
que executava o controlador e os e-pucks. Entretanto, essas dificuldades não impediram que os
experimentos fossem realizados com sucesso.
Para trabalhos futuros, sugere-se que sejam realizados experimentos em mapas maiores
(substituir a mesa onde o enxame se desloca por outra de tamanho maior), possibilitando que os
robôs percorram trajetórias maiores e complexas até atingirem o alvo. Além disso, pode-se tentar melhorar o sistema de localização por câmeras combinando-o com o sistema de localização
por odometria dos e-pucks.
41
Referências Bibliográficas
BLUM, C.; LI, X. Swarm intelligence. In:
. [S.l.]: Springer Berlin Heidelberg, 2008.
(Natural Computing Series), cap. Swarm Intelligence in Optimization, p. 43 – 85.
DORIGO, M. et al. SWARM-BOT: Design and Implementation of Colonies of SelfAssembling Robots. In: Computational Intelligence: Principles and Practice. New York:
IEEE Computational Intelligence Society, 2006.
EU-MOP. Elimination Units for Marine Oil Pollution. 2009. http://www.eumop.org/.
Acessado em maio, 2009.
FRITSCH, D.; WEGENER, K.; SCHRAFT, R. Control of a robotic swarm for the
elimination of marine oil pollutions. Swarm Intelligence Symposium, 2007. SIS 2007.
IEEE, p. 29 – 36, Abril 2007. Disponível em: <http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4223152&isnumber=4223144>.
GARCIA, R. F. E-puck Tutorial. 2008.
GARCIA, R. F.; CHAIMOWICZ, L. Uma infra-estrutura para experimentação com enxames
de robôs. In: SBAI2009. Brasília, DF - Brasil: [s.n.], 2009.
GARCIA, R. F. et al. Um arcabouço para a localização de enxames de robôs. In: SBAI2007.
Florianópolis, SC - Brasil: [s.n.], 2007.
GERKEY, B. P.; VAUGHAN, R. T.; HOWARD, A. The player/stage project: Tools for
multi-robot and distributed sensor systems. In: In Proceedings of the 11th International
Conference on Advanced Robotics. [s.n.], 2003. p. 317–323. Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.8.3914>.
KHATIB, O. Real-time obstacle avoidance for manipulators and mobile robots. International
Journal of Robotics Research, Sage Publications, Inc., Thousand Oaks, CA, USA, v. 5, n. 1, p.
90–98, 1986. ISSN 0278-3649.
LATOMBE, J. Robot Motion Planning. Boston, MA: Kluwer Academic Publishers, 1991.
LIU, G. R.; LIU, M. B. Smoothed Particle Hydrodynamics - a meshfree particle method. [S.l.]:
World Scientific Publishing Company, 2003.
MARCOLINO, L. S.; CHAIMOWICZ, L. Advances in artificial intelligence - sbia 2008. In:
. [S.l.]: Springer Berlin / Heidelberg, 2008. (Lecture Notes in Computer Science), cap.
Experiments in the Coordination of Large Groups of Robots, p. 268 – 277.
MEEKER, D. Finite Element Method Magnetics - Version 4.2 - User’s Manual. 2007.
MONAGHAN, J. J. Smoothed particle hydrodynamics. Annual Review of Astronomy and
Astrophysics, v. 30, p. 543–574, Setembro 1992.
42
MONAGHAN, J. J. Simulating free surface flows with sph. J. Comput. Phys., Academic Press
Professional, Inc., San Diego, CA, USA, v. 110, n. 2, p. 399–406, 1994. ISSN 0021-9991.
MONDADA, F. et al. The e-puck, a Robot Designed for Education in Engineering. In:
GONçALVES, P.; TORRES, P.; ALVES, C. (Ed.). Proceedings of the 9th Conference on Autonomous Robot Systems and Competitions. Portugal: IPCB: Instituto Politécnico de Castelo Branco, 2009. v. 1, n. 1, p. 59–65. Disponível em: <http://www.est.ipcb.pt/robotica2009/>.
PEREIRA, G. A. S. Motion Planning and Control of Cooperating Mobile Robots: A Graph
Connectivity Approach. Tese (Tese de Doutorado) — Universidade Federal de Minas Gerais,
Ciência da Computação, Belo Horizonte, 2003.
PIMENTA, L. C. A. Techniques for Controlling Swarms of Robots. Tese (Tese de Doutorado)
— Universidade Federal de Minas Gerais, Departamento de Engenharia Elétrica, Belo
Horizonte, 2009.
RIMON, E.; KODITSCHEK, D. Exact robot navigation using artificial potential functions.
Robotics and Automation, IEEE Transactions on, v. 8, n. 5, p. 501–518, Outubro 1992. ISSN
1042-296X.
ROY, T. M. Physically-Based Fluid Modeling using Smoothed Particle Hydrodynamics.
Dissertação (Master’s thesis) — University of Illinois at Chicago, Chicago, Illinois, 1995.
SAHIN, E. et al. Swarm intelligence. In:
. [S.l.]: Springer Berlin Heidelberg, 2008.
(Natural Computing Series), cap. Swarm Robotics, p. 87 – 100.
SHEWCHUK, J. R. Triangle: Engineering a 2d quality mesh generator and delaunay
triangulator. In:
. Applied Computational Geometry: Towards Geometric Engineering.
Berlin: Springer-Verlag, 1996. (Lecture Notes in Computer Science, v. 1148), p. 203–222.
Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.9874>.
SILVVER. Sistema de Localização por Visão VerLab. 2009. http://code.google.com/p/
silvver/. Acessado em setembro, 2009.
SWARM-BOTS. Swarm-bots project. 2009. http://www.swarm-bots.org/. Acessado em
maio, 2009.
TRIANNI, V.; NOLFI, S.; DORIGO, M. Cooperative hole avoidance in a swarm-bot. Robotics
and Autonomous Systems, v. 54, n. 2, p. 97 – 103, 2006. ISSN 0921-8890. Intelligent
Autonomous Systems. Disponível em: <http://www.sciencedirect.com/science/article/B6V164HNSB6B-1/2/60a4a10722f9c7299fe505051feb2712>.