tfg.subsumption
Class FindLine

java.lang.Object
  extended by tfg.subsumption.FindLine
All Implemented Interfaces:
Behavior

public class FindLine
extends Object
implements Behavior

Comportamento responsável por encontrar novamente a linha de cor preta.

**********************************************************************
UNIFRA - Centro Universitário Franciscano
Graduação em Sistemas de Informação
Trabalho Final de Graduação, 1º Sem/2009
Orientador: Prof. MSc. Guilherme Dhein
Orientando: Douglas Pereira Pasqualin

COPYLEFT (Todos os direitos de reprodução autorizados deste que preservados
o nome da instituição e dos autores).
**********************************************************************

Version:
0.3
Author:
Douglas Pasqualin

Field Summary
(package private)  int BLACK
           
(package private)  Side lastSide
           
(package private)  SimpleNavigator robot
           
(package private)  VirtualLightSensor sensor
           
 
Constructor Summary
FindLine(SimpleNavigator navigator, VirtualLightSensor sensor)
          Comportamento responsável por encontrar novamente a linha de cor preta.
 
Method Summary
 void action()
           
private  boolean canContinue(float estimateAngle)
          Método que testa se a posição atual do robô está perto da estimada.
private  boolean canStop()
          Método que verifica durante um movimento (girar por exemplo),
se no meio desse movimento ele passou pela linha de cor preta.
private  float getEstimateAngle(int angletoRotate)
          Método que calculava a posição final do robô, baseado no ângulo da rotação desejada
private  boolean isPlaceofOrigin(float estimateAngle)
          Método que verifica se a direção atual do robô é a mesma conforme ângulo
passado por parâmetro.
private  float normalize(float angle)
          returns equivalent angle between -180 and +180 copy from SimpleNavigator class (LeJOS)
 void suppress()
           
 boolean takeControl()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

robot

SimpleNavigator robot

sensor

VirtualLightSensor sensor

lastSide

Side lastSide

BLACK

final int BLACK
See Also:
Constant Field Values
Constructor Detail

FindLine

public FindLine(SimpleNavigator navigator,
                VirtualLightSensor sensor)
Comportamento responsável por encontrar novamente a linha de cor preta. Método construtor, deve ser passado um SimpleNavigator e um VirtualLightSensor já instanciados e configurados.

Parameters:
navigator - objeto do tipo lejos.navigation.SimpleNavigator
sensor - objeto do tipo VirtualLightSensor
Method Detail

action

public void action()
Specified by:
action in interface Behavior

suppress

public void suppress()
Specified by:
suppress in interface Behavior

takeControl

public boolean takeControl()
Specified by:
takeControl in interface Behavior

canStop

private boolean canStop()
Método que verifica durante um movimento (girar por exemplo),
se no meio desse movimento ele passou pela linha de cor preta.
No caso de achar a linha, o robô para de se mover imediatamente.

Returns:
True se achou a linha, False se o movimento foi completado e não achou a linha.

isPlaceofOrigin

private boolean isPlaceofOrigin(float estimateAngle)
Método que verifica se a direção atual do robô é a mesma conforme ângulo
passado por parâmetro. A tolerância é de 2 graus.

Returns:
True se é a mesma posição, False se a posição não é a mesma da origem

getEstimateAngle

private float getEstimateAngle(int angletoRotate)
Método que calculava a posição final do robô, baseado no ângulo da rotação desejada

Returns:
posição final do robô, caso a rotação seja completada

canContinue

private boolean canContinue(float estimateAngle)
Método que testa se a posição atual do robô está perto da estimada.
A tolerância é de 20 graus.

Parameters:
estimateAngle - ângulo que se deseja testar
Returns:
True se o robô pode continuar, False se o ângulo estimado não foi alcançado

normalize

private float normalize(float angle)
returns equivalent angle between -180 and +180 copy from SimpleNavigator class (LeJOS)

See Also:
SimpleNavigator