TrabPrat SSC0712 2012(fosorio)

De CoteiaWiki

SSC0712 - Programação de Robôs Móveis (2012)

Prof. Fernando Osório
Estagiário PAE: Diogo Correa (Mestrando - LRM / CCMC)
Semestre: 2012/1



Trabalho 1 - CHECK POINT:

TR: Trabalho Individual (Implementação no Simulador Player-Stage)
Aplicação de Robótica Móvel: SEARCH AND RESCUE
DATA DA APRESENTAÇÂO: 27/04/2012 (data original) e 04/05/2012 (extensão da data limite)


DESCRIÇÃO DO TRABALHO

  • Implementar o controle inteligente de um grupo de robôs (entre 3 e 5 robôs);
  • Os robôs irão executar uma tarefa de "Search and Rescue" (busca e resgate de feridos);
  • Existem um total de 7 pessoas feridas a serem resgatadas no mapa (buscar e resgatar);
  • Os robôs devem explorar o ambiente, encontrar e resgatar os feridos (se aproximar a menos de 1 metro);
  • Os robôs devem gerar um arquivo de LOG com o registro da simulação, ver dados sobre o formato abaixo em "complementos"
  • Os robôs não devem colidir nem com as paredes e nem com os demais robôs;
  • Serão fornecidos 2 mapas aos alunos, um conhecido (trabalhado na Aula 06) e um desconhecido (ver em "complementos");
  • Serão fornecidas 2 listas de posições dos feridos no ambiente (uma para cada mapa), considerando a localização dos robôs (position2D);
  • Será considerado que os robôs possuem a sua localização exata conhecida (position2D) e a localização dos feridos;
  • O robô poderá operar durante um certo tempo para explorar o mapa, antes de começar a operação de resgate (5 min.) - LOG inativo;
  • O robô irá operar durante um tempo máximo de 10 minutos após o início da busca - LOG ativo;
  • Alternativa ao uso de tempo pode ser um contador do nro. de chamadas ao comando "playerc_client_read(client)", sendo limitado a (3000 leituras ~ 5 min com timestep de 0.1 seg) e (6000 leituras ~ 10 min com timestep de 0.1 seg);
  • O robô deve usar o sensor Laser Sick (180 graus de varredura) para a navegação;
  • ENTREGAR: Arquivo com o controlador do robôs (em C ou C++) e Arquivos com os LOGs das simulações.


COMPLEMENTOS

1. Formato do Arquivo de LOG:

  Arquivo com nome: log<nro>.txt  (log1.txt e log2.txt - logs para cada um dos 2 mapas)
  Cada linha do arquivo de LOG deve conter os seguintes dados: 
  Nro_Robô (1a5) + espaço + Stall (0/1) + espaço + Posição_X (position2D px) + espaço + Posição_Y (position2D py) + espaço + Time_Stamp (tempo ou contador) 
  A posição do Position2D deve ser gravada com pelo menos 2 casas após a vírgula
  Importante: grave px e depois py, nesta ordem!
  Separe os dados por um espaço em branco. O nro. do robô e o stall são valores de um único dígito.
  O tempo é em milisegundos ou deve ser um inteiro representando o contador das chamadas ao comando "playerc_client_read(client)".
  O contador de chamadas é relacionado a cada robô, pois cada robô tem sua chamada ao "playerc_client_read(client)".
  Exemplo:
  1 0 3.00 3.00 1 
  2 0 4.56 -1.00 1
  3 0 -1.23 -2.34 1
  1 1 3.10 3.00 2
  2 0 4.56 -1.00 2
  3 0 -1.23 -2.34 2
  Neste exemplo temos 3 robôs, sendo que o primeiro andou e bateu (stall) e os outros 2 não se moveram em 2 passos do client_read.  


2. Arquivos dos Mapas:

  multi1.cfg e multi1.world (arquivos fornecidos junto a Aula 06)
  Multi1 é um mapa de 16.00 x 16.00 metros (-8 a +8) e usa um bitmap de 500 x 500 pixels (rooms.png)
  multi2.cfg e multi2.world e vazio.png (Link disponibilizado AQUI)
  Multi2 é um mapa de no máximo 32.00 x 32.00 metros (-16 a +16) e usa um bitmap de 1000 x 1000 pixels (vazio.png)
  Este mapa será fornecido aos alunos vazio, apesar de existir um "mapa real" que será usado nos testes.


3. Arquivos com as Posições dos Feridos:

  rescue.txt (arquivo fornecido junto a Aula 06)
  rescue1.txt (Link disponibilizado AQUI)



Atualizado em Abril de 2012
F.Osório

Voltar para SSC-712(fosorio)