Download - Projeto Robot Packing

Transcript
Page 1: Projeto Robot Packing

SISTEMAS DE INFORMAÇÃO

ERIVAN DE SENA RAMOS

JOSÉ RILDO LESSA

ROBOT PACKING

Fortaleza

2009

Page 2: Projeto Robot Packing

ERIVAN DE SENA RAMOS

JOSÉ RILDO LESSA

ROBOT PACKING

Trabalho apresentado ao Curso de

Sistemas de Informação da Faculdade

Integrada do Ceará como requisito

para obtenção da nota de AVII, da

disciplina de Sistemas Multiagentes.

Sob a orientação do Professor Ms.

Cláudio Olany Alencar de Oliveira.

Fortaleza

2009

1

Page 3: Projeto Robot Packing

RESUMO

Ao mesmo tempo em que a autonomia de robôs pessoais e domésticos

aumenta, cresce a necessidade de interação dos mesmos com o ambiente. A

interação mais básica de um robô com o ambiente é feita pela percepção deste

e sua navegação. Para uma série de aplicações não é prático prover modelos

geométricos válidos do ambiente a um robô antes de seu uso. O robô

necessita, então, criar estes modelos enquanto se movimenta e percebe o

meio em que está inserido através de sensores. Ao mesmo tempo é necessário

minimizar a complexidade requerida quanto a hardware e sensores utilizados.

No presente trabalho, é apresentado um projeto para um robot packing,

definindo seu ambiente e seus comportamentos.

Palavras-chave: Robot Packing, Sistemas Multiagentes.

2

Page 4: Projeto Robot Packing

ABSTRACT

As the autonomy of personal service robotic systems increases so has their

need to interact with their environment. The most basic interaction a robotic

agent may have with its environment is to sense and navigate through it. For

many applications it is not usually practical to provide robots in advance with

valid geometric models of their environment. The robot will need to create these

models by moving around and sensing the environment, while minimizing the

complexity of the required sensing hardware. This work proposes a design for a

robot packing, setting environment and behavior.

Keywords: Robot Packing; Systems Multiagentes

3

Page 5: Projeto Robot Packing

LISTA DE FIGURAS

FIGURA 1 - Robart I, Robart II e Robart III...................................................... 08

FIGURA 2 - Robô Sojourner............................................................................ 09

4

Page 6: Projeto Robot Packing

SUMÁRIO

1 INTRODUÇÃO ........................................................................... 06

1.1 Histórico...................................................................................... 07

2 OBJETIVOS................................................................................ 10

2.1 Objetivo geral.............................................................................. 10

2.2 Objetivos específicos................................................................... 10

3 ROBÔ PACKING..................................................... 11

3.1 Ambiente................................................................................................... 11

3.1.1 Características do ambiente................................................................... 12

3.1.1.1 Comunicação.................................................................................................. 13

3.1.1.1 Coordenação................................................................................................... 14

3.2 Robôs........................................................................................................ 14

3.2.1 Sensores................................................................................................ 15

3.2.2 Atuadores............................................................................................... 16

3.2.3 Comportamento...................................................................................... 16

4 CONCLUSÃO ............................................................................ 18

REFERÊNCIAS UTILIZADAS....................................................... 19

5

Page 7: Projeto Robot Packing

1 INTRODUÇÃO

A Robotic Industries Association (RIA) define um robô como sendo

um manipulador programável multi-funcional capaz de mover materiais, partes,

ferramentas ou dispositivos específicos através de movimentos variáveis

programados para realizar uma variedade de tarefas

Esta definição descreve toda uma categoria de máquinas. Desta

forma, qualquer equipamento capaz de ser programado de alguma forma é

considerado um robô. A indústria já utiliza esta tecnologia como substituta da

mão-de-obra humana, em especial onde há riscos envolvidos.

Pode-se distribuir os robôs em gerações segundo sua complexidade:

Primeira Geração: São robôs tipicamente utilizados em ambientes

industriais, desprovidos de "inteligência" senão aquela programada. O mundo

onde atuam deve ser preparado pois eles não são capazes de perceber os

objetos ao seu redor com exatidão. Poucos utilizam um computador dedicado

embarcado. No entanto, ainda são usados em fábricas devido ao aumento de

produtividade e qualidade do produto gerado e da durabilidade. Tendem a

desaparecer à medida que as exigências em termos de produtividade e

velocidade aumentarem ainda mais

Segunda Geração: A rápida expansão do mercado de

semicondutores fez com que computadores se tornassem produtos baratos o

suficiente para equipar robôs. Isto permitiu um avanço significativo pois

máquinas anteriormente muito limitadas puderam ser equipadas com

controladores que permitiram cálculos em tempo real e controle mais preciso

dos atuadores ao longo de trajetórias. Sensores de força, torque e proximidade

puderam ser integrados proporcionando maior adaptabilidade e precisão ao

trabalho desempenho pelo robô em seu ambiente. Entre as aplicações estão,

pintura, montagem e soldagem.

Terceira Geração: Representam os modelos mais avançados hoje

disponíveis. Caracterizam-se por incorporarem múltiplos processadores, cada

6

Page 8: Projeto Robot Packing

um deles funcionando de forma assíncrona e independente dos demais.

Também possuem sistemas supervisores e de controle destes processadores

utilizando funções de alto nível. São capazes de se comunicarem com outros

sistemas.

Todo robô, móvel ou não, possui características estruturais em

comum, tais como:

Manipulador: parte mecânica móvel do robô; geralmente

representado por uma garra.

Atuador: dispositivo responsável pela movimentação do

manipulador, os atuadores são responsáveis por atuarem no mundo físico. Eles

representam esta interface.

Sensor: dispositivo sensorial do robô. É ele que "sente" o mundo ao

seu redor. Representa a outra "ponta" do par sensor-atuador. Assim como o

dispositivo atuador, é uma parte vital para o bom funcionamento de qualquer

robô, pois o mundo do robô restringe-se às interfaces

1.1 Histórico

O interesse pela mobilidade de robôs teve início com hobistas das

áreas de elétrica/eletrônica. Estes entusiastas construíram seus primeiros

protótipos impulsionados pela curiosidade. Compostos a partir de peças de

equipamentos como rádios, televisores e pequenos motores, tinham como

inspiração os filmes de ficção científica da época. Estes modelos também

tinham em comum a imitação da forma humana (antropomórficos), a

teleoperação e o total desprovimento de "inteligência"

A partir do final da década de 70 e início dos anos 80, começaram a

aparecer projetos sérios para aplicações como patrulhamento de ambientes,

transporte de carga, segurança, exploração, entre outros, quase sempre

patrocinados por órgãos militares, governamentais ou grandes empresas.

Percebeu-se aí um importante nicho ainda inexplorado e de grande

futuro se nós pensarmos no enorme potencial econômico disto. Também

7

Page 9: Projeto Robot Packing

alimentou o sonho de tornar realidade máquinas queo cinema imortalizou na

série Star Wars, como o andróide C3PO e o robô R2D2.

Um dos primeiros modelos a obter sucesso foi o Robart I,

desenvolvido pela marinha norteamericana entre os anos de 1980 e 1982. Este

robô tinha como função patrulhar ambientes fechados a procura de situações

indesejáveis, tais como indícios de incêndio e vestígios de intrusos .

Aplicações como estas foram escolhidas para demonstrar a

utilidade destas funções livrando pessoas destas tarefas e para provar que não

eram necessários dispositivos avançados, reduzindo a complexidade de todo

sistema. Estes modelos já exibiam características como fusão sensorial e

dispositivos sintetizadores de voz para anúncio destas situações indesejáveis

detectadas. Também eram capazes de encontrar sozinhos para a recarga da

bateria pontos previamente configurados com base na troca de sinais de rádio

entre o robô e esta central. Os modelos seguintes, Robart II (1982-1992) e III

(1992), eram mais avançados, possuindo processamento distribuído de cada

grupo desensores, planejamento de trajetória, criação de mapas do ambiente,

utilização de câmeras de vídeo para a transmissão de imagens e muitos mais.

FIGURA 1 - Robart I, Robart II e Robart III

O desenvolvimento prosseguiu com a adição de novos tipos de

sensores, atuadores e programas de controle tornando-os cada vez mais

8

Page 10: Projeto Robot Packing

autônomos e precisos na realização de suas tarefas. Também passaram a ser

utilizados em outros ambiente além do terrestre. Robôs para exploração

submarina como aqueles utilizados na descoberta de naufrágios famosos e

robôs para o patrulhamento aéreo, como os aviões espiões Predator norte-

americanos usados na guerra do golfo. Ou seja, robôs permeiam praticamente

todas as atividades humanas dos dias de hoje, mesmo sem nos darmos conta

disso.

Da limpeza de ambientes à aviação, das agências bancárias aos

supermercados tudo possui máquinas programáveis para facilitar a vida das

pessoas. Existem hoje robôs extremamente avançados. A evolução nesta área

é surpreendente. O caso mais famoso de projeto bem sucedido é o robô

Sojourner. Construído pelo Jet Propulsion Laboratory (JPL) do Instituto de

Tecnologia da Califórina em parceria com a NASA e enviado a Marte com o

objetivo de explorar as características do terreno deste planeta e realizar

experimentos científicos. Esta missão foi a primeira de uma série de outras

planejadas. Estes robôs podem ser considerados o estado da arte na área de

robótica móvel autônoma. Uma vez lançados e em órbita, pouco pode ser feito

em caso de falhas.

FIGURA 2 - Robô Sojourner

A viagem do Sojourner levou sete meses. Durante este período de

tempo, tudo que os técnicos responsáveis pela missão tinham a sua disposição

eram dados de telemetria. A intervenção (envio de comandos por exemplo)

também era possível, apesar do longo intervalo de tempo necessário para isto,

entre 6 e 41 minutos.

9

Page 11: Projeto Robot Packing

2 OBJETIVOS

2.1 OBJETIVO GERAL

O objetivo dessa pesquisa é entender e esclarecer os fundamentos

da comunicação e interação de agentes inteligentes; aplicando conceitos na

modelagem do projeto de um robot packing, através de um estudo realizado

por meio de um levantamento bibliográfico. Esse trabalho é caracterizado como

uma pesquisa conceitual, e visa contribuir na aplicabilidade do conjunto de

princípios da disciplina de Sistemas Multiagentes.

2.2 OBJETIVOS ESPECÍFICOS

Pesquisar aspectos relacionados à robótica móvel de acordo com os

preceitos da disciplina de Sistemas Multiagentes.

Estudar aspectos relacionados à projetos de modelagem e

construção de um robot packing.

Projetar ambiente, robôs e comportamentos, identificando sensores e

atuadores.

10

Page 12: Projeto Robot Packing

3 ROBOT PACKING

O presente projeto pretende apresentar uma simulação para um

domínio bidimensional, onde robôs devem mover pacotes em direção ao

destino.

Neste domínio, robôs só podem carregar um pacote por vez, e não é

permitido passar através dos pacotes, eles devem manobrá-los ou contorná-

los. Existindo um custo associado para mover o pacote, porem não existe um

custo para levantar ou para baixar um pacote.

Se o robô encontrar um pacote quando já está carregando outro, ele

deve empurrar esse outro pacote ou desviar dele. Empurrar o pacote acarreta

num custo mais alto, porém isso poderá trazer benefícios futuros ao próprio

robô ou aos outros.

O robô tem benefícios de acordo com os movimentos em direção ao

destino, quando carregando uma caixa.

O robô poderá se movimentar para qualquer uma das casas vizinhas

(caso estejam disponíveis) e que, para fazê-lo, precisa girar na direção que

pretende ir.

3.1 Ambiente

O domínio apresentado para esse projeto consiste em um reticulado,

cercado por paredes que modelam uma grid, dividida em 50 quadrados, cuja

exploração será feita pelos agentes a serem descritos.

Nessa grid existem 2 divisões distintas, para um melhor controle das

categorias, ações e mensagens dos robôs que atuaram na mesma. São elas:

Área Robôs Buscadores, onde nessa a atuação será exclusiva de um robô

específico na modelagem proposta; e Área Robôs Entregadores, que terão

11

Page 13: Projeto Robot Packing

interatividade só com robôs que são encarregados de pegar os pacotes

deixados por “Robôs Buscadores” e levar até o alvo.

A montagem do reticulado obedece às seguintes regras:

Contêm:

25 pacotes

Cada pacote possuirá uma informação

binária a qual definirá seu status atual (“0” à

espera da coleta e “1” sendo transportado).

4 robôs

Orientados por sinais que serão enviados

pelo ambiente ou outros robôs.

2 alvos

Cada alvo possuirá um sinalizador que

emitirá a posição em que ele se encontra.

Qualquer posição apresenta os seguintes estados:

Ocupada por um outro robô (OR)

Ocupada por um pacote (OP)

Desocupada (DE)

Posição do alvo (PA)

Posição atual do robô (PR)

3.1.1 Características do ambiente

As características do ambiente são fundamentais na definição da

arquitetura e estrutura dos agentes. O ambiente do Robot Packing será

classificado de acordo com as seguintes características:

Acessível: pois os sensores do agente são capazes de coletar

todas as informações relevantes sobre o ambiente.

12

Page 14: Projeto Robot Packing

Estocástico: pois seus estados futuros são afetados pelos

outros agentes.

Episódico: a atuação dos agentes é dividida em episódios

atômicos, onde o agente percebe e efetua apenas uma ação

por episódio independente dos anteriores. Não há relação ou

dependência entre episódios.

Estático: As alterações que podem ocorrer no ambiente

dependem da atuação dos agentes.

Discreto: por possuir um número fixo e finito de ações e

percepções, um número definido de variáveis e valores

possíveis.

Multiagente: O ambiente é composto por muitos agentes.

O ambiente projetado propicia uma infra-estrutura computacional

para que ocorra a interação entre os robôs. Essa infra-estrutura inclui

protocolos para comunicação e protocolos para a interação entre agentes.

3.1.1.1 Comunicação

A comunicação entre os agentes é realizada de forma direta onde os

Robôs Buscadores ao detectarem por meio de seus sensores pacotes no grid

através de uma propagação de sinais, enviam sinais pelos seus atuadores, que

é difundido pelo ambiente até atingir os Robôs Entregadores, afim da definição

da melhor rota, ou para obter resoluções de conflitos. A partir disso, uma

solução é criada através do agrupamento de agentes que trabalham

cooperativamente, cada um deles resolvendo parte do problema.

Para a comunicação utilize-se o KQML - Knowledge Query and

Manipulation Language, um protocolo e linguagem (alto-nível) de comunicação

orientada à mensagem, para troca de informação, independente da sintaxe de

conteúdo.

13

Page 15: Projeto Robot Packing

2.1.1.2 Coordenação

A alocação das tarefas é descentralizada em uma estrutura de

subordinação, onde os Robôs Entregadores definem qual a rota a ser realizada

pelos Robôs Buscadores, e em caso de conflito define quem tem prioridade

sobre o pacote. A partir disso, está envolvida a busca por uma funcionalidade

neste sistema que permita que estes agentes possam coordenar seus

conhecimentos, objetivos, habilidades e planos individuais de uma forma

conjunta, em favor da execução de uma ação ou da resolução de algum

problema onde se faça necessária a cooperação entre os agentes.

 3.2 Robôs

A comunicação entre o agente e o ambiente será através da ação

percebe, que pesquisará o status atual da coordenada que emitirá sinais que

corresponderá ao estado da posição (OR, OP, DE, PA), retornando uma

percepção.

Se o robô tentar caminhar para uma posição que é uma parede, ele

perceberá um choque e continuará se movimentado para outra direção

possível.

O objetivo do Robô Buscador é sensoriar o ambiente para identificar

pacotes espalhados pela grid, e solicitar aos Robôs Entregadores uma rota

inteligente até uma região de entrega.

O objetivo do Robô Entregador é enviar aos Robôs Buscadores, qual

o alvo mais próximo e qual a melhor rota para chegar até a região de entrega.

As outras ações possíveis a serem realizadas pelos robôs são as

seguintes:

Direcao: muda a orientação do Robô. As possíveis

orientações são: Norte, Sul, Leste ou Oeste, definidas

14

Page 16: Projeto Robot Packing

respectivamente pelas c = (c, l) onde “c” identifica a

coluna e “l” identifica a linha.

Carregar: o agente pega e segura o pacote.

Empurrar: empurra o pacote.

Soltar: solta o pacote.

Enviar_msg: Envia mensagem.

Receber_msg: Recebe mensagem.

3.2.1 Sensores 

     

Os agentes projetados são capazes de sensoriar, perceber o

ambiente por meio de sensores e trocas de mensagens.

Desta forma é possível saber como agir de acordo com o

estado do ambiente.

Os sensores apresentados pelo Robot Packing são os

seguintes:  

Sensor ótico – executa a ação percebe.

Antena para sinal digital – executa a ação Receber_msg.

Bússola – auxilia na ação Direcao.

Leitor de freqüência - que informa a PR.

 

15

Page 17: Projeto Robot Packing

3.2.2 Atuadores   

      Após perceber e processar as informações, o agente opera no ambiente de acordo com seus objetivos e estado interno, utilizando seus atuadores.

Os atuadores apresentados pelo Robot Packing para agir

no ambiente são:  

Quatro rolamentos na parte inferior do robô e base giratória

ente as rodas e o corpo do robô – executa a ação Direcao.

Duas garras – executa ação Carregar e Soltar.

Antena para sinal digital – executa a ação Enviar_msg.

 

3.2.3 Comportamento

Os robôs não reagem somente ao seu ambiente, mas também

exibem um comportamento orientado à satisfação de seus objectivos, conforme

as definições e restrições abaixo relacionadas:

Os Robôs Entregadores atravém de sensores ópricos percebem

que existem pacotes no ambiente, e enviam mensagem para os

Robôs Buscadores.

Os Robôs Buscadores iniciam a busca após receberem sinal dos

Robôs Entregadores, e só finalizam após percorrem todo o

ambiente.

Os robôs buscadores conseguem andar a uma velocidade de 1k/h

sem nenhum pacote

Os robôs buscadores conseguem andar a uma velocidade de

0,5k/h com um pacote

O robô consegue andar a uma velocidade de 0,25k/h com um

pacote e empurrando outro.

16

Page 18: Projeto Robot Packing

O Robô Buscador ao pegar um pacote, irá se comunicar com o

Robô Entregador para que o mesmo envie a melhor rota até a área

de entrega, esse escolha é feira através de Busca Heurística Best-

First Search1, que por sua vez a função dessa prioriza caminhos

em linhas restas, que é sempre mais perto, caso o caminho não

seja em linha reta a busca utilizará outras técnicas.

No ato de carregar um pacote, o Robô Buscador ao se deparar

com mais um pacote na sua rota (obstáculo) irá utilizar sempre a

seguinte condição: se perto desse obstáculo tiver outros pacote o

Robô Entregador empurrará esse obstáculo para poder passar,

caso contrário irá desviar do mesmo. Pois se houver mais de um

obstáculo o Buscador teria mais trabalho para desviar, assim

perdendo mais tempo e diminuindo seu desempenho.

Ao chegar na “área de entrega” o Robô Buscador detecta a

fronteira entre sua área e a de referida e solta o pacote em um dos

lugares pré-definidos.

Na coleta de pacotes em coordenadas do grid, quando houver

conflito entre Robôs Buscadores (quando chegarem ao mesmo

tempo em um pacote para coletar - prioridade de coleta), o mesmo

irá solicitar ao Robô Entregador quem têm mais prioridade, o Robô

Entregador irá decidir quem tem essa prioridade a partir de um

histórico previamente armazenado de custo de entregas dos Robôs

Buscadores – é calculado a partir de uma base de dados que é

gerada a cada entrega de pacotes do Robô Buscador, nesse

histórico é guardado o custo das entregas e quem tiver o melhor

custo será priorizado no conflito, isto é, irá pegar o pacote em

discussão.

A área de entrega será divida igualmente entre os dois Robôs

Entregadores, e cada um responsável pela entrega dos pacotes em

um alvo. Os Robôs Entregadores percorrerão sua respectiva área

de entrega constantemente enquanto houver pacotes no ambiente.

1 Busca genérica que seleciona o caminho de menor custo, mas altera o caminho caso um outro ramo apresente menor distância. Baseia-se em uma função de avaliação f(n) = h(n)(heurística) = estima o custo da raiz (n) até o objetivo.

17

Page 19: Projeto Robot Packing

4 CONCLUSÃO

Ao mesmo tempo em que a autonomia de robôs aumenta, cresce a

necessidade de interação dos mesmos com o ambiente. A interação mais

básica de um robô com o ambiente é feita pela percepção deste e sua

navegação.

Além das habilidades de percepção e raciocínio, também é

fundamental para um robô, aprender e evoluir quais os melhores

comportamentos a serem tomados.

Podemos concluir ainda, que é também de fundamental importância

para um Sistema Multiagente tomar decisões a partir um protocolo de

comunicação e negociação. Desta forma, pode haver uma reação de forma

correta às ações que venham a ocorrer no ambiente, buscando evitar ações

desnecessárias.

18

Page 20: Projeto Robot Packing

REFERÊNCIAS UTILIZADAS

BELO, Felipe Augusto Weilemann. Desenvolvimento de algoritmos de exploração e mapeamento visual para robôs móveis de baixo custo. Rio de Janeiro: PUC-Rio, 2006. Disponível em <www2.dbd.puc-rio.br/pergamum/tesesabertas/0410268_06_pretextual.pdf>, acessado em 07/06/2009.

ENDLER, Markus. Algoritmos para Tomada de Decisão Cooperativa entre Robôs Móveis. Rio de Janeiro: PUC-RIO, 2006. Disponível em <www-di.inf.puc-rio.br/~endler/courses/DA/Monografias/06/RoboticaMovel-Pedro-Cunha-Mono.pdf>, acessado em 07/06/2009.

SILVA, Luciano Rottava. Análise e programação de robôs móveis autônomos da plataforma eyebot. Florianópolis: UFSC, 2003. Disponível em <www.das.ufsc.br/~rottava/download/dissertacao.pdf>, acessado em 07/06/2009.

OLIVEIRA, Cláudio Olany Alencar. Sistemas Multiagentes - Agentes Inteligentes. Fortaleza: FIC, 2008.

OLIVEIRA, Cláudio Olany Alencar. Sistemas Multiagentes - Sensores e Atuadores. Fortaleza: FIC, 2009.

OLIVEIRA, Cláudio Olany Alencar. Sistemas Multiagentes - Coordenação em SMA. Fortaleza: FIC, 2009.

19