Descrio do Projeto Data mxima para entrega: 15/06/2011 (Em dupla)
A navegao autnoma de robs mveis um problema bastante estudado na robtica. Conceitualmente, o ato de navegar consiste em guiar um rob em um espao de trabalho (ambiente), durante um determinado intervalo de tempo, atravs de um caminho que leve o rob de uma posio e orientao iniciais para uma posio e orientao finais. Uma das tarefas principais nesse problema o planejamento da trajetria. Essa tarefa realizada por um sistema, denominado sistema de navegao, que considera as restries de locomoo do rob, bem como obstculos no espao de trabalho, gerando como sada um conjunto de instrues (comandos) executveis pelo rob. Cada instruo est associada a um trecho da trajetria que ser realizada pelo rob em um perodo de tempo.
Objetivo
O objetivo do presente trabalho desenvolver um simulador de trajetrias. Dados como entrada a posio inicial do rob e um conjunto de instrues geradas por um sistema de navegao, o simulador dever atualizar a posio e orientao do rob devido a cada instruo e, ao final, exibir a posio e orientao finais. Considere para isso um rob mvel sobre duas rodas com giroscpio que, a cada instruo, capaz apenas de girar em torno do prprio eixo e realizar uma trajetria retilnea com velocidade uniforme em um dos 8 seguintes sentidos: norte (N), nordeste (NE), leste (E), sudeste (SE), sul (S), sudoeste (SO), oeste (O) e noroeste (NO). Foras contrrias ao movimento, tais como atrito, no sero consideradas, a fim de simplificar o problema. Pelo mesmo motivo, o sentido da trajetria em cada instruo ser representado por 4 nmeros, de acordo com os seguintes padres:
N E S O N 1 0 0 0 NE 1 1 0 0 E 0 1 0 0 SE 0 1 1 0 S 0 0 1 0 SO 0 0 1 1 O 0 0 0 1 NO 1 0 0 1
Padres diferentes desses no devem ser considerados, devendo o rob, nesse caso, manter a sua posio e orientao atual. Alm do sentido, em cada instruo, ser tambm especificado o tempo de execuo da trajetria retilnea uniforme, em milissegundos. Por exemplo, a instruo 1 1 0 0 300 indica que o rob deve mover-se no sentido nordeste durante 0.3 segundos. Dadas as restries de locomoo do rob, pode-se inferir que, ao receber uma instruo, o rob ir girar em torno do seu prprio eixo at atingir o sentido especificado e, ento, executar a trajetria retilnea uniforme durante o perodo de tempo especificado. A figura a seguir ilustra o comportamento do rob ao receber a instruo 1 1 0 0 300.
Para o desenvolvimento do simulador utilize a linguagem de programao C. O simulador deve ser capaz de computar um ou mais casos de teste, apresentados segundo o padro de entrada definido a seguir.
Entrada
A entrada comea com um valor inteiro que indica o nmero de casos de teste a serem simulados. A primeira linha de cada caso de teste composta por dois nmeros representando as coordenadas (em metros) da posio inicial do rob no plano y x . A segunda linha de cada caso de teste apresenta a velocidade do rob em metros por segundo (m/s). A terceira linha de cada caso de teste apresenta o nmero de instrues do caso de teste. Pelo menos uma instruo executvel ser apresentada em cada caso de teste. Cada linha de instruo de cada caso de teste composta por 5 nmeros. Os quatro primeiros indicam o sentido da trajetria, segundo o padro estabelecido, e o quinto nmero indica o tempo de execuo em milissegundos.
Sada
Para cada caso de teste, o simulador deve exibir como sada dois nmeros e uma string, informando, respectivamente, as coordenadas finais, x e y , e a orientao final, do rob.
Exemplo
Considere como exemplo a seguinte entrada com 2 casos de teste e a sada esperada, conforme o padro especificado:
Na primeira linha da entrada, o valor 2 indica o nmero de casos de teste. Os valores 0 0 indicam os valores das coordenadas x e y da posio inicial do rob no primeiro caso de teste, enquanto que o valor 0. 1, na linha seguinte, indica o valor da velocidade do rob (m/s) no primeiro caso de teste. Na quarta linha, o valor 3 indica o nmero de instrues que sero apresentadas ao rob no primeiro caso de teste. Cada uma das instrues apresentada em cada uma das 3 linhas subsequentes. Em seguida, apresentado o segundo caso de teste, com coordenadas iniciais x =10 e y =10, velocidade igual a - 0. 1 m/s, e uma instruo. Caso existissem mais casos de teste, estes estariam representados em seguida, de acordo com o padro estabelecido. A sada 0. 031213 0. 041213 E corresponde s coordenadas e direo finais do primeiro caso de teste, enquanto que 10. 007071 9. 992929 NO corresponde s coordenadas e direo finais do segundo caso de teste.
Para verificar o funcionamento do simulador, as entradas podem ser apresentadas atravs do dispositivo de entrada padro, isto o teclado, e as sadas podem ser exibidas atravs do dispositivo de sada padro, o monitor. O comando de leitura scanf ser suficiente para a leitura das entradas, e o comando pr i nt f ser suficiente para exibio das sadas. Entretanto, para a avaliao do funcionamento do simulador, ser utilizado um mecanismo de teste, no qual sero apresentados vrios casos de teste. Logo, imprescindvel que o simulador seja capaz de processar o padro de entrada, acima especificado, risca, e exibir a sada, igualmente, de acordo com o padro especificado acima. Para verificar se a sua verso do simular est funcionando corretamente de acordo com os padres estabelecidos, e assim garantir a sua nota, sugerido que voc procure o estagirio PAE antes da data mxima de entrega, levando consigo a sua implementao, para que seja aplicado o mecanismo de teste. Caso queira, no entanto, realizar essa verificao por conta prpria, assumindo a responsabilidade e risco de eventuais erros, verifique as instrues no arquivo de Instruo de Teste, em anexo.
Avaliao
Como instrumentos de avaliao do projeto, devem ser entregues o cdigo fonte do simulador de trajetria e um relatrio de no mximo 2 pginas explicando as decises de projeto. Estes arquivos devem ser entregues pessoalmente ao estagirio PAE em horrio de atendimento, s quartas-feiras, das 18h30 s 20h30, na sala 1-106 do ICMC-USP, ou em horrio previamente agendado. Lembre-se que a data mxima para entrega do trabalho 15/06/2011. Evite transtornos no deixando o trabalho para ltima hora e realizando a verificao do funcionamento do simulador e entrega final do trabalho antes da data mxima.
A critrio do professor e do estagirio PAE, outros instrumentos de avaliao podero ser aplicados, como, por exemplo, a arguio sobre as decises de projeto e/ou sobre o cdigo do simulador. Durante o desenvolvimento do trabalho, no deixe de discutir as decises de projeto com o seu companheiro de dupla.