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)