tfg.subsumption
Class FindLineEx

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

public class FindLineEx
extends Object
implements Behavior

Comportamento responsável por encontrar novamente a linha de cor preta e compensar a velocidade dos motores.

**********************************************************************
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.5
Author:
Douglas Pasqualin

Field Summary
(package private)  int auxLeft
           
(package private)  int auxRight
           
(package private)  int BLACK
           
(package private)  int incSpeed
           
(package private)  Side lastSide
           
(package private)  int lastSpeedLeft
           
(package private)  int lastSpeedRight
           
(package private)  Motor leftMotor
           
(package private)  int n
           
(package private)  Motor rightMotor
           
(package private)  SimpleNavigator robot
           
(package private)  VirtualLightSensor sensor
           
 
Constructor Summary
FindLineEx(SimpleNavigator navigator, VirtualLightSensor sensor)
          Comportamento responsável por encontrar novamente a linha de cor preta e compensar a velocidade dos motores.
 
Method Summary
 void action()
           
private  void compensateMotors()
          Método responsável por compensar a velocidade dos motores
private  int getNewIncSpeedByPG(int actualIncSpeed)
          Retorna de quanto deve ser incrementada a velocidade do motor.
private  void rotate(int angle, boolean immediateReturn)
          Não pode usar o rotate do SimpleNavigator / TachoPilot, pois ele força os dois motores
a ficarem com a mesma velocidade, não é esse objetivo do experimento.
 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

leftMotor

Motor leftMotor

rightMotor

Motor rightMotor

lastSide

Side lastSide

lastSpeedLeft

int lastSpeedLeft

lastSpeedRight

int lastSpeedRight

auxLeft

int auxLeft

auxRight

int auxRight

n

int n

incSpeed

int incSpeed

BLACK

final int BLACK
See Also:
Constant Field Values
Constructor Detail

FindLineEx

public FindLineEx(SimpleNavigator navigator,
                  VirtualLightSensor sensor)
Comportamento responsável por encontrar novamente a linha de cor preta e compensar a velocidade dos motores. 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

rotate

private void rotate(int angle,
                    boolean immediateReturn)
Não pode usar o rotate do SimpleNavigator / TachoPilot, pois ele força os dois motores
a ficarem com a mesma velocidade, não é esse objetivo do experimento.
Implementado um rotate local


getNewIncSpeedByPG

private int getNewIncSpeedByPG(int actualIncSpeed)
Retorna de quanto deve ser incrementada a velocidade do motor.
A cada chamada da função a velocidade é diminuida, através de uma progressão geométrica

Parameters:
actualIncSpeed - último incremento de velocidade aplicado
Returns:
Incremento da velocidade

compensateMotors

private void compensateMotors()
Método responsável por compensar a velocidade dos motores