Mudanças entre as edições de "TrabPrat SSC0712 2012(fosorio)"
De CoteiaWiki
Linha 39: | Linha 39: | ||
<br> | <br> | ||
1. Formato do Arquivo de LOG:<br> | 1. Formato do Arquivo de LOG:<br> | ||
− | + | ||
− | A posição do Position2D deve ser gravada com pelo menos | + | 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! | 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. | 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. | ||
+ | |||
<br> | <br> | ||
2. Arquivos dos Mapas: <br> | 2. Arquivos dos Mapas: <br> | ||
+ | |||
+ | 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 será 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. | ||
+ | |||
<br> | <br> | ||
3. Arquivos com as Posições dos Feridos:<br> | 3. Arquivos com as Posições dos Feridos:<br> | ||
+ | rescue.txt (arquivo fornecido junto a Aula 06) | ||
+ | rescue1.txt (Link será disponibilizado AQUI) | ||
<br> | <br> | ||
Edição das 02h40min de 18 de abril de 2012
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 (se aproximar a menos de 1 metro) os feridos;
- 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 (3 min.) - LOG inativo;
- O robô irá operar durante um tempo máximo de 5 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 (1800 leituras ~ 3 min com timestep de 0.1 seg) e (3000 leituras ~ 5 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 Arquivo com o LOG da Simulação.
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 será 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 será disponibilizado AQUI)
Atualizado em Abril de 2012
F.Osório
Voltar para SSC-712(fosorio)