• Nenhum resultado encontrado

“The true delight is in the finding out rather than in the knowing.” Isaac Asimov Existem diversas plataformas que permitem simular o comportamento de robôs computacionalmente. Algumas destas plataformas permitem a simulação de enxames de robôs. Em Kramer and Scheutz [2007] e Craighead et al. [2007] são discutidas algumas plataformas tanto comerciais quanto open-source.

A plataforma descrita em Pinciroli et al. [2012] foi desenvolvida com o propósito de simular robôs heterogêneos e, além disso, esta plataforma possui uma arquitetura que permite fazer uso de todos os núcleos dos atuais processadores de mútiplos núcleos.

Neste trabalho foram escolhidas duas plataformas diferentes para realizar as si-mulações. Primeiro, utiliza-se o MATLAB [MathWorks, 2014], ambiente que permite que várias ferramentas de visualização de dados sejam facilmente usadas e possui um grande número de bibliotecas com funções úteis já implementadas.

Posteriormente, com o intuito de analisar os dois algoritmos em um ambiente mais próximo da realidade, os algoritmos foram implementados no ROS (Robot Operating System) [Quigley et al., 2009]. O ROS é um conjunto de ferramentas computacionais que permitem simular robôs de diferentes tipos. Dentro do ROS existe uma ferramenta chamada Stage que facilita na simulação de robôs móveis em duas dimensões. Usando o ROS/Stage é possível fazer com que o mesmo código usado nas simulações rode em robôs reais com apenas algumas modificações, isto faz com que a transição da simulação para o uso com robôs reais seja muito simples se comparado com outros ambientes.

Tanto no ROS/Stage quanto no MATLAB, uma grande vantagem em relação a outros simuladores é a vasta popularidade entre pesquisadores, o que possibilita recorrer à ajuda da comunidade científica na implementação dos algoritmos. No trabalho de Vaughan [2008] são feitos benchmarks com enxames de robôs de modo a avaliar tempo de processamento do projeto Player com este tipo de sistema. Para testar os algoritmos aqui propostos não havia necessidade de usar plataformas dedicadas ao uso de enxames de robôs, com isso as plataformas MATLAB e ROS/Stage foram adequadas.

5.1 Simulações 37 Após todas as simulações os dois algoritmos foram aplicados em robôs reais para analisá-los mesmo com os ruídos, dinâmicas não modeladas e os erros de localização dos robôs, que são problemas comuns em situações reais.

Nas próximas seções serão mostradas algumas simulações e experimentos.

5.1 Simulações

Em todas as simulações todos os robôs começam parados e a posição inicial dos robôs é de acordo com uma distribuição aleatória Gaussiana. A escolha desta distribui-ção inicial visa mostrar os algoritmos propostos em situações em que os robôs começam bem misturados. Cada grupo é representado por uma cor específica e os robôs perten-centes a este grupo são desta mesma cor. Todas as simulações foram paradas quando não havia mais forças artificiais entre os centros das abstrações e as abstrações haviam atingido o tamanho desejado (σdes

j ), i.e. quando o problema de segregação foi resolvido conforme a definição do capítulo 3.

O tamanho desejado das abstrações (σdes

j ) é especificado de modo a respeitar mini-mamente a equação (4.10):

σdes j = d2

4Nj

−δσ j, (5.1)

em queδσé um pequeno valor positivo.

Em todas as simulações, tanto em ambiente MATLAB quanto em ambiente ROS/Stage, a solução do problema de minimização das equações (4.16) e (4.48) é obtido com ajuda da função f mincon do MATLAB. O f mincon é um popular solver de programação não-linear. Na simulação em ROS/Stage, a função f mincon do MATLAB roda simulta-neamente com o programa em C++ do ROS/Stage.

5.1.1 Robôs do tipo Integrador Simples

Figura 5.1: Sequência de quadros de uma simulação.

Uma simulação que exalta os aspectos qualitativos da proposta em ambiente MA-TLAB é mostrada na figura 5.1. Neste exemplo são usados 6 grupos com 6 robôs em cada.

5.1 Robôs do tipo Integrador Simples 38

Figura 5.2: (a) Evolução do “tamanho” de cada abstração. (b) Mínima distância entre os centros das abstrações ao longo do tempo.

Figura 5.3: Mínima distância entre robôs.

Cada robô é modelado como um círculo e é usado o modelo cinemático da equação (3.19). O tamanho de cada abstração é representado pelos círculos maiores. Cada abstração é identificada por uma cor, seus robôs por esta cor.

No último quadro da figura 5.1 também é destacada a formação doα-lattice. Os ganhos c, kµ e kσusados foram 1; 10 e 0,5 respectivamente. Os ganhos c e kµ se fundem e usando c = 1, temos que o ganho kµ é o único que controla a intensidade da força artificial aplicada nos centros das abstrações. O parâmetro h usado foi 0,4 e foi usado d = 1,5r. O raio dos robôs foi definido Rb = 15 e foi usado δσ = 0,1. Os outros parâmetros como a distribuição dos robôs e o finite cut-off r foram definidos para que se possa melhor avaliar visualmente a proposta.

5.1 Robôs do tipo Integrador Duplo 39 A figura 5.2 mostra a evolução do tamanho (σ) de cada abstração e a mínima distância entre os centros das abstrações ao longo do tempo. Pode-se observar que as abstrações atingem o tamanho desejado antes de chegarem à distância desejada d, isto pode ser alterado regulando os ganhos kµ e kσ. Através da figura 5.1 com ajuda dos gráficos da figura 5.2, pode-se perceber que a segregação é atingida com sucesso. Uma análise da figura 5.1 e do gráfico da figura 5.3 permite concluir que não houve colisões entre robôs, apesar de que com os parâmetros escolhidos, principalmente o δσ usado, vários robôs ficam muito próximos em muitos momentos.

5.1.2 Robôs do tipo Integrador Duplo

O controlador proposto foi testado em duas plataformas diferentes, ROS/Stage e MATLAB. No ROS/Stage foram usados robôs à tração diferencial e no MATLAB foi usado um modelo de robô holonômico. Nesta seção são apresentadas uma simulação no ROS/Stage e três simulações no MATLAB. No MATLAB o intuito era testar a viabilidade da proposta com um variado número de robôs e grupos. No ROS/Stage o interesse era analisar o controlador em um ambiente de simulação mais próximo da realidade, e ainda servir como base para a implementação em robôs reais.

A figura 5.4 mostra três simulações feitas no MATLAB usando o algoritmo para robôs do tipo integrador duplo. Nestas simulações cada grupo possui 5 robôs e são feitas simulações com 5, 10 e 15 grupos de robôs. No último quadro de cada simulação também é destacado a formação dosα-lattices e o tamanho das abstrações.

Os ganhos c, kµ, k1 e k2 foram ajustados juntamente com o passo de integração da simulação para que se pudesse evitar erros numéricos e ainda ter um baixo tempo de processamento. Os outros parâmetros foram variados em cada simulação de forma que fosse visualmente possível ver a segregação ocorrendo.

A figura 5.5 mostra quadros de uma simulação em ROS/Stage. Foi usada a técnica de linearização por realimentação de estados [Desai et al., 1998] para que fosse possível usar o controlador proposto com robôs à tração diferencial. Esta simulação é importante para servir de ponte entre as simulações feitas no MATLAB e a implementação em robôs reais. Esta simulação serve também para demonstrar o algoritmo proposto em uma situação em que os grupos estão desbalanceados.

Para destacar melhor a propriedade “local” do controlador proposto comparado aos trabalhos de Kumar et al. [2010] e Santos [2014], a figura 5.6 mostra a média do número de grupos na vizinhança Biao longo do tempo, isto é, a média de informações que cada robô precisa do instante inicial até a segregação ser obtida. Pode-se observar que nas três simulações após a iteração 10000 cada robô precisa de informações de até 4 grupos, em média, em sua vizinhança.

5.2 Plataforma de testes com Robôs Reais 40

Figura 5.4: Da esquerda para a direita: Quadros das simulações com 75, 50 e 25 robôs. De cima para baixo: Sequência de quadros de três simulações.

5.2 Plataforma de testes com Robôs Reais

Para os testes com robôs reais foi utilizada a plataforma experimental descrita em Garcia and Chaimowicz [2009], situada no laboratório de Visão e Robótica (VeRLab) do Departamento de Ciência da Computação da Universidade Federal de Minas Gerais. Esta plataforma possui uma câmera para localização dos robôs através de tags colocadas acima dos mesmos. Em Bosque [2009], é utilizada esta mesma plataforma aplicando o algoritmo proposto em Pimenta et al. [2013b].

5.2 Plataforma de testes com Robôs Reais 41

Figura 5.5: Quadros de uma simulação no ambiente ROS/Stage com 20 robôs distribuí-dos desigualmente em 4 grupos. Da esquerda para direita: Situação inicial, situação intermediária e situação final.

Iterações ×104

0 0.5 1 1.5 2 2.5 3

Número de grupos na vizinhança B

i 4 6 8 10 12 14 16 5 grupos 10 grupos 15 grupos

Figura 5.6: Média da informação de quantos grupos vizinhos que cada robô precisa ao longo do tempo.

Foram usados robôs e-puck [Cianci et al., 2007], como o mostrado na figura 5.8. Por serem de pequeno porte e possuirem diferentes sensores embarcados, estes robôs são muito utilizados pela comunidade científica e para fins didáticos. Nesta plataforma, estes robôs são atuados diretamente em velocidade.

Os robôs e-puck são à tração diferencial, ou seja, possuem apenas duas rodas. Apesar dos diversos sensores e da possibilidade de processamento embarcado, todo o proces-samento foi feito por um computador externo e a localização pela câmera externa, por já estar implementado desta forma na plataforma usada.

Como os robôs utilizados são movidos à tração diferencial, é usada a linearização por realimentação de estados [Desai et al., 1998] para que seja possível utilizar a estratégia proposta em robôs deste tipo. Os robôs são modelados como sendo um quadrado inscrito em um círculo de raio igual à metade da diagonal do quadrado. Para efeito da metodologia proposta o tamanho dos robôs é considerado como sendo o tamanho dos círculos. A figura 5.7 mostra dois dos robôs e-puck usados, em um deles são indicados o raio e o tamanho considerados na abordagem proposta.

5.2 Resultados Experimentais com Robôs do tipo Integrador Simples 42

Figura 5.7: Tamanho do robô considerado.

e a solução dos problemas de minimização das equações (4.16) e (4.48) são obtidos com ajuda da função f mincon do MATLAB, rodando simultaneamente com o ROS. Um outro computador é utilizado para ajudar na comunicação entre computador e robôs simplesmente pelo limite de conexões bluetooth que cada computador consegue receber. O segundo computador recebe informações processadas no primeiro computador por uma rede Wi-Fi local e repassa para os robôs a ele conectados.

5.2.1 Resultados Experimentais com Robôs do tipo Integrador

Sim-ples

Um experimento com 9 robôs e-puck [Mondada et al., 2009] é apresentado a seguir. Os 9 robôs são divididos em 3 grupos com 3 robôs em cada um dos grupos. Quadros deste experimento são mostrados na figura 5.9.

Um vídeo com o experimento mostrado na figura 5.9 e com a simulação mostrada na figura 5.1 pode ser encontrado em https://youtu.be/BH5Hk_NVNxc.

5.2.2 Resultados Experimentais com Robôs do tipo Integrador Duplo

Também foi feito um experimento com algoritmo para robôs do tipo integrador duplo. Foram usados 6 robôs e-puck divididos igualmente em três grupos. Quadros deste experimento são mostrados na figura 5.10.

O algoritmo para robôs do tipo integrador duplo necessita de informações sobre a velocidade dos robôs, essa informação não pôde ser obtida de forma confiável por causa dos pequenos erros na localização dos robôs. Assim, no problema de minimização da equação (4.48) foram utilizados a máxima velocidade que os robôs eram capazes de atingir ao invés de sua velocidade real, para que se pudesse fazer o tratamento de colisões. Obviamente esta é uma solução conservadora, mas que não provoca nenhuma alteração na prova de convergência para segregação do sistema..

5.2 Resultados Experimentais com Robôs do tipo Integrador Duplo 43

Figura 5.8: Um robô e-puck.

Figura 5.9: Sequência de quadros do experimento com robôs e-puck usando o algoritmo do tipo integrador simples.

Na figura 5.11(b) tem-se a evolução do centros das abstrações, em que os círculos são o tamanho das abstrações no instante final e na figura 5.11(d) tem-se a evolução dos próprios robôs, em que o asterisco indica a posição final dos mesmos. Nas figuras 5.11(a) e 5.11(c) são mostrados a evolução do tamanho das abstrações e a distância mínima entre robôs ao longo do tempo, respectivamente.

Com ajuda dos gráficos mostrados na figura 5.11 é possível concluir que a segregação foi atingida com sucesso e nenhuma colisão ocorreu durante este processo.

Um vídeo contendo o experimento mostrado na figura 5.10 e também uma ou-tra simulação no MATLAB destacando os aspectos qualitativos da proposta pode ser encontrado em http://youtu.be/uAkKKgeyN8k.

5.2 Resultados Experimentais com Robôs do tipo Integrador Duplo 44

Figura 5.10: Sequência de quadros do experimento com robôs e-puck usando o algoritmo do tipo integrador duplo.

Iterações

0 1000 2000 3000 4000

Tamanho das Abstrações

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 (a) Tamanho desejado x -0.4 -0.2 0 0.2 0.4 y -0.5 0 0.5 (b) Iterações 0 1000 2000 3000

Distância mínima entre robôs

0 0.05 0.1 0.15 0.2

Evitamento de colisões ligado

Robôs em colisão (c) x -0.4 -0.2 0 0.2 0.4 0.6 y -0.4 -0.2 0 0.2 0.4 0.6 (d)

Figura 5.11: Gráficos referentes ao experimento mostrado na figura 5.10 (a) Evolução do tamanho das abstrações. (b) Evolução dos centros das abstrações. (c) Distância mínima entre robôs ao longo do tempo. (d) Evolução da posição dos robôs.

Capítulo 6

Documentos relacionados