DESENVOLVIMENTO DE ROBÓTICA INTELIGENTE EM AMBIENTE VIRTUAL PARA MÚLTIPLOS ROBÔS

Documentos relacionados
COMPARATIVOS DE AMBIENTES DE PROGRAMAÇÃO GRÁFICOS PARA O KIT DE ROBÓTICA LEGO MINDSTORMS NXT

COMPARATIVOS DE AMBIENTES DE PROGRAMAÇÃO GRÁFICOS PARA O KIT DE ROBÓTICA LEGO MINDSTORMS NXT

ESTUDO DA TRANSFERÊNCIA AUTOMÁTICA DE DADOS PARA UM ROBÔ MÓVEL NA PLATAFORMA LEGO MINDSTORMS

Inteligência Artificial Agentes Inteligentes

DESENVOLVIMENTO DE ROBÓTICA INTELIGENTE EM AMBIENTE VIRTUAL PARA MÚLTIPLOS ROBÔS

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 4 Tipos de Agentes Inteligentes Racionais e Ambientes

APLICAÇÃO DE TESTES UTILIZANDO LÓGICA CLÁSSICA NA PROGRAMAÇÃO DE PLATAFORMA ROBÓTICA MÓVEL

INCLUIR COM CIÊNCIA E TECNOLOGIA: APROXIMANDO A SOCIEDADE DO CONHECIMENTO

MANIPULADOR ROBÓTICO DIDÁTICO

Agentes. O que é um Agente. Agentes Inteligentes. Inteligência Artificial I. Tópicos. Introdução a Agentes. Introdução a Agentes

Inteligência Artificial

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO CONCEITO DE SOFTWARE PROFESSOR CARLOS MUNIZ

Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Descritivo Combo 4 (Conjunto de 4 kits Modelix Marte Plus)

Agentes Inteligentes. Inteligência Artificial

Sistemas de Informação e Decisão. Douglas Farias Cordeiro

Simulação de Futebol de Robôs

Robótica Evolutiva uma População de Robôs Reais que Fazem Amor e Geram Descendentes Enquanto Aprendem a Realizar Tarefas

Oficina de Sistemas Tutores Inteligentes

Agentes Inteligentes

Workshop - A Robótica em Contexto Educativo

Estudo de Caso Usando a Plataforma Microsoft Robotics Developer Studio (RDS)

Disciplina de. Programação de Robôs Móveis SSC-0712

TÓPICOS DE INTRODUÇÃO AO LABVIEW E SUA APLICAÇÃO NA ROBÓTICA MÓVEL

Desenvolvido por: Prof. Dr. Fernando Osório* Farlei Heinen* (Mestrando em Computação Aplicada - PIP/CA)

Sistemas Multi-agentes

ROBOTOY: ferramenta para ensino de programação para crianças usando robôs Arduino. Aluna: Juliana Carolina Batista Orientadora: Joyce Martins

Sumário. Simulação (1) Simulação (2) Simulação (3) Inteligência Artificial Distribuída (1) Ambientes de Simulação Baseados em Agentes

Uma ontologia para modelagem de conteúdo para Ensino a Distância. An ontology for modeling distance learning contents

Conjunto Lubrifil. Esteira Transportadora. Cilindros Pneumáticos. Sensor. Sensor. Motor CC. Módulo Sinaleiro. Módulo Chave e Botões.

Curso online de Fundamentos em Android. Plano de Estudo

Inteligência Artificial. Agentes Computacionais. Introdução

CONSTRUÇÃO DE UM ROBÔ MÓVEL COMO RECURSO DIDÁTICO NOS CURSOS DE ENGENHARIA

O Robô Educador Introdução

Inteligência Artificial. Prof. Ilaim Costa Jr.

Projeto Interface Interativa Inclusiva.

Protótipo de um robô rastreador de objetos. Orientando: Emerson de Oliveira Orientador : Miguel Wisintainer

Desenvolvimento de um Protótipo e de Metodologias de Controlo de uma Cadeira de Rodas Inteligente

!"$# %$'& (#) *+! *,$ -) -#.+/ &$0 $"$# 1 ' #$4!*.+5 #76$8 8'9

Avaliação de Alunos em Ambientes de Ensino à Distância

Disciplina de Programação de Robôs Móveis SSC-0712

GERENCIAMENTO DE PROJETOS - 20h - EaD

ANAIS SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL. Agentes Móveis. José Garcia Vivas Miranda

Smart Grids ALGORITMO DISTRIBUÍDO PARA AUTORRECUPERAÇÃO DE UTILIZANDO UM SISTEMA MULTIAGENTE REATIVO. laai.ufpa.br. Filipe Saraiva

Organização e Arquitetura de Computadores I

Inteligência Artificial Aplicada a Robôs Reais

Inteligência Artificial

ESTUDO DA LINGUAGEM NXC PARA PROGRAMAÇÃO DE UM ROBÔ MÓVEL NA PLATAFORMA LEGO MINDSTORMS

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

CURSO: ENGENHARIA DE CONTROLE E AUTOMAÇÃO EMENTAS º PERÍODO

PRINCÍPIOS DA PROGRAMAÇÃO LEGO MINDSTORMS NXT

Agentes Inteligentes. CAPÍTULO 2 - Russell

Prof. Dr. Jomi Fred Hübner (FURB/SC) Prof. Dr. Jaime Simão Sichman (USP/SP)

O Simulador Ciber-Rato. e o. ƒ Concurso Ciber-Rato. Estrutura da Apresentação

Robótica 2002/2003 Introdução à Robótica. Estrutura da Apresentação

2. Redes Neurais Artificiais

LEGO Mindstorm e suas aplicações

Introdução ao LabVIEW para Robótica

CURSO: ENGENHARIA DE CONTROLE E AUTOMAÇÃO EMENTAS º PERÍODO

Inteligência Artificial: Introdução

Introdução à Automação Industrial

Protótipo de um Simulador de um Aspirador de Pó, Utilizando Algoritmo de Busca e Agentes Inteligentes, em Ambientes com Barreiras

Figura 4.2: Matriz Curricular

Inteligência Artificial - IA. Agentes Inteligentes Cont.

MATRIZ CURRICULAR BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO. 1º Período

LÓGICA E ROBÓTICA INTRODUÇÃO

Computação Bioinspirada: Aplicações

SSC5887 SSC5887. Histórico. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER

Disciplina de Sensores Inteligentes SSC-0715

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1

Disciplina de Sensores Inteligentes SSC-0715

SISTEMA DE NAVEGAÇÃO PARA UM ROBÔ BASEADO EM SENSOR MAGNÉTICO

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

INTELIGÊNCIA COMPUTACIONAL

de caso por um rádio-controle.

Desenvolvendo Sistemas de Aquisição, Análise e Apresentação de Dados com LabVIEW

EDITAL 2018/2019 RESUMO DE PROJETO

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Agentes Inteligentes. Módulo 02 27/02/2013. Inteligência Artificial. Profª Hemilis Joyse

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Agentes Inteligentes Curso de Análise e Desenvolvimento de Sistemas INTELIGÊNCIA ARTIFICIAL PROFESSOR FLÁVIO MURILO

ESTUDO E DESENVOLVIMENTO DE UM BRAÇO ROBÓTICO VESTÍVEL UTILIZANDO LEGO MINDSTORMS RESUMO

Sistema de Aquisição de Dados em Tempo Real Utilizando Software Livre e Rede Ethernet para Laboratório de Controle

PROGRAMANDO O ROBO LEGO

Desenvolvendo aplicações com LabVIEW FPGA. Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas

APLICAÇÃO DO ALGORITMO SARSA NA COLETA DE LIXO - ESTUDO DO PARÂMETRO ALPHA 1

Interatividade. Limitado Reativa Coativa. Alargado Coativa Proativa

DESENVOLVIMENTO DE UM LABORATÓRIO DIDÁTICO PARA ELETRÔNICA USANDO PLATAFORMA DE INSTRUMENTAÇÃO VIRTUAL COM ACESSO VIA WEB

Implementação do controle PID e validação real utilizando a plataforma robótica RoboDeck

1 Introdução Origens

Inteligência Artificial. Agentes computacionais. Aula IV Cap.2 Russell e Norvig (continuação)

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

RESGATE UTILIZANDO ROBÔ REAL

Disciplina de Sensores Inteligentes SSC-0715

Transcrição:

Departamento de Engenharia Elétrica DESENVOLVIMENTO DE ROBÓTICA INTELIGENTE EM AMBIENTE VIRTUAL PARA MÚLTIPLOS ROBÔS Aluna: Deise Regina Ceregatti Momm Orientadora: Karla Tereza Figueiredo Leite Introdução A robótica autônoma e inteligente envolve diferentes áreas do conhecimento, é multidisciplinar. Os robôs devem ser capazes, entre outras coisas, de prever e planejar suas ações. Um aprendizado que, na maioria das vezes, requer longos períodos de processamento e inúmeros testes. Por isso a importância de um ambiente virtual que seja capaz de reproduzir o modelo real com fidelidade. Como forma de exemplificar os sistemas multiagentes, optou-se por simular o problema presa-predador, que envolve diversos conceitos inerentes ao tema. Se trata de um ambiente com uma presa e pelo menos dois predadores, onde, de maneira mais simplificada, o objetivo da presa é fugir dos predadores enquanto o deles é capturar a presa. A problemática que existe se refere ao fato do MatLab não possuir um ambiente de simulação e também de não se conectar diretamente com o Microsoft Robotics (alternativa escolhida como ambiente de simulação). Sendo assim, uma interface se faz necessária. Essa interface pode ser realizada via LabVIEW que se comunica tanto com o MatLab quanto com o Microsoft Robotics, ou ainda, via SPL, uma ferramenta alternativa que permite a integração dos três softwares anteriores. Sistemas Multiagentes Os Sistemas Multiagentes (SMA) são uma área emergente da Inteligência Artificial que fornece os princípios para construção de sistemas complexos envolvendo múltiplos agentes e os mecanismos de coordenação entre eles [1]. Conforme Wooldridge [2], a principal característica dos agentes é a autonomia, que os leva a interagir continuamente com o ambiente em que estão inseridos, num loop que consiste basicamente em sentir, decidir e agir. Figura 1 - Agentes e o ambiente Trabalho Desenvolvido no Período de Abril a Junho de 2012.

Além de interagirem com o ambiente os agentes interagem também entre si, o que requer que possuam habilidades como cooperação (trabalho em equipe), coordenação (controlar atividades interdependentes) e negociação (habilidade de chegar a um acordo em assuntos de interesse comum), assim como fazem as pessoas. A. Classificação Os agentes podem ser classificados quanto à aquisição de conhecimento, quanto à tarefa que executam, à mobilidade, entre outras coisas. Quanto à Aquisição de Conhecimento: Por Nwana [3], dentro desta classificação, os agentes podem ser deliberativos ou reativos. Agentes Deliberativos: possuem um modelo de raciocínio e um modelo simbólico interno, utilizado para tomar decisões e executar tarefas necessárias para alcançar seus objetivos. Agentes Reativos: executam tarefas apenas quando são estimulados, em resposta ao estado atual do ambiente no qual estão inseridos. Quanto as Tarefas que Executam: Segundo Wooldridge e Jennings [4], quanto às tarefas que executam, os agentes podem ser classificados em: Gopher: agentes simples que executam tarefas baseadas em regras preestabelecidas, hipóteses e suposições. Prestadores de Serviços: agentes que executam tarefas de alto nível e bem definidas, quando solicitado pelo usuário. Proativos: agentes que prestam informações/serviços ao usuário mesmo quando não solicitadas (os). Quanto à Mobilidade: Ainda por Nwana [3], os agentes podem ser classificados de acordo com a sua capacidade de se mover pela rede: Agentes Estáticos: não se movem pela rede, ou seja, atuam localmente. Agentes Móveis: possuem habilidade de se mover pela rede. B. Características Além da autonomia, existem outras características que definem um agente, destacando-se: Adaptabilidade Flexibilidade Inteligência Capacidade de se adaptar a novas situações pela acumulação de conhecimentos. Habilidade que demonstra a capacidade de um agente em escolher ações dinamicamente, assim como, a execução destas ações. Habilidade do agente em decidir quais ações tomar, para isso são utilizadas técnicas inteligentes como Redes Neurais, Lógica Fuzzy e Algoritmos Genéticos.

C. Propriedades dos Ambientes O tipo de ambiente em que os agentes estão inseridos é um aspecto fundamental a ser considerado, que define a maneira como os agentes atuarão e de que forma perceberão eventuais alterações. As principais classificações são: Acessível x Inacessível: um ambiente acessível é aquele que o agente tem todas as informações necessárias sobre o estado do ambiente, caso contrário é dito inacessível; quanto mais acessível for o ambiente, mais fácil será fazer com que o agente opere nele. Determinístico x Não-Determinístico: o ambiente é determinístico quando é determinado por seu estado atual e as atuações dos agentes. Episódico x Não-Episódico: em um ambiente episódico o desempenho do agente é dividido em episódios (constituídos das ações e percepções), sendo que, a qualidade de cada ação depende somente do episódio em si. Estático x Dinâmico: ambientes estáticos não se alteram com o passar do tempo, apenas devido às ações dos agentes; ambientes dinâmicos possuem outros processos em operação, que podem acarretar em alterações que os agentes não podem controlar. Discreto x Contínuo: um ambiente é discreto quando possui um número finito de ações e percepções (distintas e bem definidas). Agente Único x Multiagente: ambientes multiagentes envolvem ações coordenadas de mais de uma agente, enfoque deste trabalho. D. Coordenação Segundo Ferreira Jr. [5] (apud Nwana; Lee; Jennings, 1996), a coordenação impede o comportamento caótico do sistema (figura 2), permite que o sistema lide com restrições globais e a interdependência entre os agentes, e permite que o sistema seja composto por agentes diferentes com diferentes competências. Figura 2 - Comportamento caótico São quatro as categorias em que se pode classificar a coordenação: Estrutura Organizacional: técnica que explora uma descrição prévia da estrutura organizacional do SMA. Define implicitamente as responsabilidades dos agentes, suas capacidades, relações, etc. Contratos: a coordenação se dá por um processo de relações de mercado (descentralizado). Os agentes podem tornar-se gerentes, partir um problema em subproblemas e contratar outros agentes para realiza-los; os agentes

contratados podem fazer novas contratações. O processo acontece através de leilões que consideram a capacidade dos agentes para realizar as tarefas. Planejamento Multiagente: técnica que se baseia no planejamento conjunto entre os agentes para detalhar suas ações futuras e as interações necessárias para que o objetivo do sistema seja atingido. O planejamento pode ser distribuído ou centralizado, evita inconsistências e ações conflitantes. Negociação: essa técnica explora o processo de comunicação entre os agentes para que estes componham acordos mútuos sobre diversos aspectos de sua atuação conjunta no ambiente. Algumas técnicas utilizadas se baseiam na teoria dos jogos e em planejamento, e podem ser inspiradas na interação entre humanos. O Problema Presa-Predador No ecossistema, a predação é uma estratégia de obtenção de alimentos onde os predadores procuram suas presas, as perseguem, capturam e comem. Além disso, é uma força evolutiva bastante importante: favorece os predadores mais eficazes e as presas mais evasivas [6]. O objetivo desse modelo é demonstrar a cooperação em sistemas multiagentes (entre os predadores) e, por outro lado, a atuação independente da presa tais estratégias comportamentais definem as ações dos agentes no ambiente. Os agentes predadores devem identificar a presa, para então iniciar a sua perseguição e, consequentemente, a sua captura. Considera-se a presa capturada quando os predadores conseguem cercá-la, impedindo-a de se mover para qualquer outra posição (figura 3). Figura 3 - Captura da presa Nesse tipo de problema várias configurações relacionadas à inteligência dos agentes podem ser utilizadas: Predadores e presa dotados de inteligência. Predadores dotados de inteligência e presa burra (se movimenta aleatoriamente pelo ambiente). Predadores burros e presa inteligente. A Ferramenta de Simulação A ferramenta de simulação proposta deve integrar, principalmente, os softwares MatLab e Microssoft Robotics Developer Studio (MSRS), que devem se comunicar com os agentes que serão construídos utilizando-se o kit de robótica da Lego (Lego Mindstorms NXT). Nesses três meses de projeto foram estudados, além dos sistemas multiagentes, os programas: MatLab, MSRS, LabVIEW, SPL e o pacote RWTH, conforme segue:

1. Lego Mindstorms NXT Inicialmente, o Lego Mindstorms (figura 4) era tido como um brinquedo, porém, com o passar dos anos foi sendo introduzido em escolas e universidades para fins didáticos. O kit básico é composto de um brick (módulo NXT) com entradas para os sensores e saídas para os motores, um sensor ultrassônico, três servo-motores, um sensor sonoro, um sensor de luz e dois sensores de toque [7]. Além disso, estão inclusas várias peças características dos brinquedos Lego, que possibilitam a montagem de diversos modelos de robôs e máquinas (por exemplo, uma impressora). Figura 4 - Kit Lego Mindstorms A comunicação do NXT com o computador pode ser feita via USB ou Bluetooth, este último, proporciona uma liberdade no deslocamento dos robôs, porém, a comunicação se torna mais lenta, o que deve ser considerado durante a programação. Os sensores ultrassônicos podem detectar objetos a até 255 cm de distância, com variação de +/- 3 cm. Contudo, quando o objeto está muito próximo ou em casos de quinas o som pode ser desviado, acarretando em erros de medição bastante significativos. Os servo-motores permitem que se controle o quanto devem girar e a que velocidade (em uma escala que varia de 0 a 100), e ainda, possuem encoders (sensores de rotação) para determinação da distância percorrida, neste caso, dada em graus. 2. MatLab e a Ferramenta RWTH O MatLab é um software voltado para cálculos com matrizes que pode ser utilizado em diversas aplicações, como: análise numérica, processamento de sinal e imagem, controle, testes e medições, entre outras. Possui ferramentas adicionais de técnicas inteligentes como Redes Neurais, Lógica Fuzzy e Algoritmos Genéticos. O RWTH Mindstorms NXT Toolbox for MATLAB [8] foi desenvolvido na Universidade de Aachen, na Alemanha, a partir da necessidade de integrar o MatLab com o Lego Mindstorms NXT, para projetos dos estudantes de engenharia elétrica. Essa ferramenta possui os drivers necessários para controlar o NXT (controle dos motores, leitura dos sensores, conexão via USB e Bluetooth, etc.), conforme figura 5.

Figura 5 - Comandos do RWTH no MatLab 3. Microsoft Robotics Developer Studo (MSRS) O MSRS [9] é um ambiente que possibilita a criação de aplicações robóticas para uma variedade de plataformas de hardware (Lego, Pioneer P3DX, irobot, Kinect Sensor, etc.). A. Concurrency and Coordination Runtime (CCR) O CCR é utilizado para gerenciar operações que rodam simultaneamente, como por exemplo, no caso em que um robô se desloca em um ambiente com obstáculos, os sensores devem detectar objetos para evitar colisões e, ao mesmo tempo, decisões relativas às direções devem ser tomadas e seus motores devem ser controlados [10]. O CCR determina qual segmento de código está sendo executado o número de segmentos em execução é normalmente definido de acordo com o número de processadores independentes do sistema. B. Descentralized Software Services (DSS) Os programas do MSRS são escritos na forma de serviços que rodam no DSS, e estes, são utilizados para combinar aplicações CCR. A Microsoft fornece uma série de contratos que são utilizados pelos serviços, estes contratos especificam as APIs que devem ser utilizadas para estabelecer comunicação com os motores, sensores ultrassônicos e até mesmo câmeras de vídeo. Cada aplicação desenvolvida no MSRS irá conter um ou mais serviços. Combinar esses serviços e transmitir mensagens através deles é uma das tarefas do DSS, que é realizada por meio da orquestração. A figura 6 mostra um exemplo de como os serviços devem ser orquestrados para controlar um robô. Figura 6 Orquestração

C. Visual Programming Language (VPL) O VPL é um ambiente de programação gráfica (diagrama de blocos, figura 7) baseado em fluxo de dados que pode ser utilizado para criar serviços e orquestrá-los. Figura 7 - Diagrama de blocos NXT com sensor ultrassônico D. Visual Simulation Environment (VSE) O VSE pode ser usado em uma variedade de cenários avançados (internos e externos) com altas demandas de fidelidade, visualização e dimensionamento (ver figura 8). O simulador pode ser utilizado para testar algoritmos antes de executá-los no hardware do robô real, evitando que eventuais erros de programação destruam o robô. Além disso, existem casos em que o robô ainda não existe e o simulador funciona como um local de testes para o modelo a ser utilizado. Figura 8 - Simulação NXT em ambiente externo

4. Simple Programming Language (SPL) Durante as pesquisas realizadas, encontrou-se uma ferramenta que permite a comunicação direta entre os softwares em questão, o SPL (Simple Programming Language) [11], um software livre para desenvolvimentos acadêmicos e/ou não comerciais. Sua principal característica é a utilização de um script no qual linhas de comando e expressões são utilizadas para criação das aplicações (figuras 9 e 10). Uma ferramenta flexível e, principalmente, simples. O site disponibiliza uma série de tutoriais que auxiliam o aprendizado (alguns deles já foram realizados com êxito); todos os programas dos projetos foram escritos em C# e os códigos fonte estão disponíveis para download. Figura 9 - Script do SPL Figura 10 - Simulação no MSRS via SPL

5. LabVIEW para Lego Mindstorms O LabVIEW para Lego Mindstorms foi criado para uso da plataforma Lego no ensino de robótica como alternativa ao software original do Mindstorms que possui algumas limitações. Essa ferramenta possibilita configurar o Lego NXT visualmente (diagrama de blocos) e graficamente (painéis frontais). Para estudar a comunicação do MatLab com o MSRS via LabVIEW utilizou-se como exemplo o projeto Simulated Nicholas [12] disponibilizado pela National Instruments, conforme as figuras abaixo. Figura 11 - Inicialização do exemplo Simulated NIcholas Figura 12 - Exemplo em execução simulação no MSRS

O material disponibilizado pela National Instruments não deixa claro como a comunicação com o MSRS ocorre e, ao que se percebe, são necessários conhecimentos mais avançados da ferramenta. Por isso decidiu-se, no primeiro momento, utilizar o SPL para a integração dos softwares e desenvolvimento do ambiente de simulação do modelo presapredador e, paralelamente, continuar os estudos sobre a comunicação realizada via LabVIEW, de forma a anteder a proposta inicial do projeto. Conclusões O estudo realizado até agora permitiu uma maior compreensão das ferramentas que deverão ser utilizadas, suas principais características e até mesmo algumas de suas limitações. Espera-se que, com a utilização do SPL, e posteriormente com a comunicação via LabVIEW, o ambiente de simulação a ser desenvolvido possa ser utilizado em outras aplicações e como ferramenta de auxílio no ensino de disciplinas de robótica inteligente. Referências 1 - STONE, P.; VELOSO, M. Multiagent Systems: A survey from the machine learning perspective, em Autonomous Robots., v.8, n.3, Jul. 2000. 2 - WOOLDRIDGE, M. An Introduction to Multiagent Systems. Disponível em: http://www.csc.liv.ac.uk/~mjw/pubs/imas/imas2e.html, Lecture Slides. Acesso em: 04/04/2012. 3 - NWANA, H. Software Agents: An Overview. Knowledge Engineering Review, v.11, n.3, p.1-40, 1996. Cambridge University Press. 4 - WOOLDRIDGE, M.; JENNINGS, N.R. Intelligent Agents: Theory and Practice. The Knowledge Engineering Review, v.10, p.115-152, 1995. 5 - FERREIRA JÚNIOR, P. R. Coordenação de Sistemas Multiagente Atuando em Cenários Complexos: uma Abordagem Baseada na Divisão do Trabalho dos Insetos Sociais. Porto Alegre, 2008. 123p. Tese (Programa de Pós-Graduação em Computação), Universidade Federal do Rio Grande do Sul. 6 - Predation and Parasitism. Disponível em: http://www.globalchange.umich.edu/ globalchange1/current/lectures/predation/predation.html. Acesso em: 04/04/2012. 7 - Lego Mindstorms NXT. Disponível em: http://mindstorms.lego.com/en-us/default.aspx. Acesso em: 10/04/2012. 8 - RWTH Mindstorms NXT Toolbox. Disponível em: http://www.mindstorms.rwthaachen.de/. Acesso em: 15/04/2012. 9 - Microsoft Robotics Developer Studio. Disponível em: http://www. microsoft.com/robotics/#learn. Acesso em: 02/05/2012. 10 - JOHNS, K.; TAYLOR, T. Professional Microsoft Robotics Developer Studio. Wrox Programmer to Programmer. Mai, 2008. 826p. 11 - STEM Education: SPL Toolkit. Disponível em: http://www.helloapps.com/quickstart/. Acesso em: 11/06/2012.

12 - National Instruments: Simulated Nicholas using MSRS 2008 R3. Disponível em: http://zone.ni.com/devzone/cda/epd/p/id/6443. Acesso em: 10/05/2012.