Modelagem de movimentação de robôs em uma grid
infra-vermelho para seguir a linha da grid.
8 estados e inicialização:
PARADO-> se algum robo requisitar nó que está sendo ocupado, então (AJUDANDO). se destino for enviado então determinar caminho e passar para (ANDANDO).
ANDANDO-> destino já determinado.
PRESO-> todos os nós(recursos) para onde o robo poderia ir estão tomados. Nesse
caso pede-se para os outros robos que um deles libere caminho
preferencialmente o que dê melhor caminho). Passa então para (ESPERANDO).
AJUDANDO-> Caso não tenha preferência, mudar caminho para dar passagem ao robô
requisitante(que fica em ESPERANDO). Depois passar para (ESPERANDO
AGRADECIENTO).
ESPERANDO-> Após pedido de ajuda aceito fica esperando recurso ser liberado. Passa
para (ANDANDO) caso FLAG 'está ajudando' esteja em falso e para (AJUDADO)
caso esteja em verdadeiro.
ESPERANDO AGRADECIMENTO-> Após ajudar um robô o robô que ajudou não pode
imediatamente tentar tomar novamente o recurso que estava ocupando, por
isso deve esperar o robô que estava (ESPERANDO) avisar que já requisitou
com sucesso os recursos que foram liberados. Poderia ser sbestituido por
uma pausa de alguns segundos. Se ao envés disso receber outro pedido de ajuda,
então passar para (AJUDANDO)(essa ação deve ser feita com cuidado, caso hajam dois
requisitantes seria bom se da prioridade ao que foi atendido logo antes, caso este
esteja requisitando também).
PEGAR/BAIXAR PRATELEIRA-> Ao chegar em seu destino checa os FLAGS 'liberar' e
'carregando'. 'liberar' diz se a prateleira deve ser carregada ou
descarregado ou se o robô deve apenas permanecer naquela posição.
'carreando' indica que o robô tem uma prateleira consigo ou não está
carregando nada.
Tipos de Movimentação
movimentação1=>ir para linha desejada, depois ir para coluna desejada pede-se uso de ua posição