Programação e Simulação

Realizar um experimento de robótica de enxame é tipicamente complexo porque muitos robôs precisam ser atendidos. O desgaste, a confiabilidade e a robustez do hardware também são questões em curso. Por isso, é útil fazer (pelo menos inicialmente) simulações. Os ambientes de programação e simulação utilizados para este projeto são baseados em soluções abertas providas pelos criadores originais dos Kilobots e por pesquisadores do projeto Swarm Organ, que estudam abordagens na área de auto-organização em enxames utilizando estratégias de controle cooperativo e distribuído. Nas seções seguintes, são detalhados tanto o ambiente de programação quanto o ambiente de simulação, composto por um simulador open-source.

 

I. Ambiente de Programação

O ambiente de programação para os Kilobots foi desenvolvido para facilitar a elaboração de algoritmos para estes sem que haja necessidade de se preocupar com as complexidades da plataforma utilizada pelo usuário. O ambiente de programação é formado basicamente por três elementos:

KiloGUI

  • Kilogui: é uma interface utilizada pelo OHC para iniciar os kilobots, carregar um novo programa, calibrar os robôs, etc. As instruções de instalação e uso estão disponíveis em [1].
  • Kilolib: os kilobots são programados em C (AVR C) e a biblioteca Kilolib fornece uma interface amigável para para que o usuário possa acessar os recursos providos pelos kilobots, tais como sensores, comunicação e atuação nos motores. A documentação da Kilolib está disponível em [2].
  • Editor e Compilador: há um web-based editor que permite a escrita e compilação de programas para os Kilobots sem a necessidade de se instalar o compilador. Para aqueles que preferem instalar o compilador e utilizar um editor à sua escolha podem seguir as instruções disponíveis em [1] , ou se preferirem, podem utilizar o Eclipse como editor.

A linguagem utilizada é baseada em C, com algumas restrições. Além da documentação da Kilolib, há também o Kilobot Labs, site com exemplos de uso dos principais recursos fornecidos pelos Kilobots.

 

II. Ambiente de Simulação

O ambiente de simulação utilizado neste projeto é baseado no simulador open-source Kilombo. A grande vantagem deste simulador é que o código fonte escrito para ele pode ser diretamente compilado para o Kilobot sem quaisquer alterações. Isso possibilita o desenvolvimento de algoritmos complexos utilizando apenas o simulador, uma vez que os mesmos terão comportamento muito próximo quando carregados nos Kilobots.

Kilobots simulados no Kilombo

Detalhes sobre o uso do simulador e sobre as diferenças entre a sintaxe nativa utilizada pela Kilolib e a sintaxe levemente alterada utilizada pelo Kilombo são encontrados no paper [3].

 

Referências

  1. Kilobotics Documentation – Link
  2. Kilobot Library API – Link
  3. Kilombo: a Kilobot simulator to enable effective research in swarm robotics. Fredrik Jansson, Matthew Hartley, Martin Hinsch, Ivica Slavkov, Noemí Carranza, Tjelvar S. G. Olsson, Roland M. Dries, Johanna H. Grönqvist, Athanasius F. M. Marée, James Sharpe, Jaap A. Kaandorp, Verônica A. Grieneisen – Link