robo.navigate
Class Navigator

java.lang.Object
  extended by robo.navigate.Navigator

public class Navigator
extends java.lang.Object

Klasse zur Navigation eines Roboters. Die Klasse bekommt Zielkoordinaten und steuert den Roboter dann so, dass er auf das Ziel zufährt. Dabei wird die Maximalgeschwindigkeit speed benützt. Die Klasse kennt auch den Befehl, der am Ziel ausgeführt werden soll, und fährt das Ziel ggf. langsamer an.

Author:
matthiaskummerer

Nested Class Summary
 class Navigator.DebugInfo
           
(package private)  class Navigator.SpeedCondensator
           
 
Field Summary
 double agressiveness
          Ein Maß für die Agressivität des Lenkverhaltens
 Navigator.DebugInfo debugInfo
          Enthält diverse Debuginformationen
 int targetBefehl
          Der Befehl, der am Ziel ausgeführt werden soll.
 double targetSpeed
          Variable, mit der die Geschwindigkeit verringert werden kann, ohne speed zu ändern.
 double targetX
          X-Koordinate des Ziels in Pixelkoordinaten
 double targetY
          Y-Koordinate des Ziels in Pixelkoordinaten
 
Constructor Summary
Navigator(IVehicle vehicle)
           
 
Method Summary
 void addStatusListener(StatusListener statusListener)
          Wenn jemand benachrichtigt werden will, wann der Roboter sein Ziel erreicht hat, kann er hier einen Statuslistener hinzufügen.
 void calulateStep()
          Berechnet und setzt anhand der akuellen Position des Roboters neue Geschwindigkeiten für die beiden Räder.
 void close()
          Beendet den Navigator
 int getRealSpeed()
          Liefert anhand der Entfernung zum Ziel, der Bildqualität der Position etc. die momentan gefahrene Geschwindigkeit.
 int getSpeed()
           
 int getSpeedWish()
          Liefert die Geschwindigkeit, die der Navigator gerade gerne fahren würde, woran er allerdings möglicherweise vom Kondensator gehindert wird.
 void removeStatusListener(StatusListener statusListener)
          Entfernt einen StatusListener.
 void setSpeed(int speed)
          Setzt die globale Maximalgeschwindigkeit.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

targetX

public double targetX
X-Koordinate des Ziels in Pixelkoordinaten


targetY

public double targetY
Y-Koordinate des Ziels in Pixelkoordinaten


targetBefehl

public int targetBefehl
Der Befehl, der am Ziel ausgeführt werden soll.


targetSpeed

public double targetSpeed
Variable, mit der die Geschwindigkeit verringert werden kann, ohne speed zu ändern. Wird in der Nähe des Zieles genutzt, um dieses langsamer anzufahren


agressiveness

public double agressiveness
Ein Maß für die Agressivität des Lenkverhaltens


debugInfo

public Navigator.DebugInfo debugInfo
Enthält diverse Debuginformationen

Constructor Detail

Navigator

public Navigator(IVehicle vehicle)
Method Detail

addStatusListener

public void addStatusListener(StatusListener statusListener)
Wenn jemand benachrichtigt werden will, wann der Roboter sein Ziel erreicht hat, kann er hier einen Statuslistener hinzufügen. Der Navigator ruft dann bei jedem erreichten Zielpunkt die Methode StatusListener.targetReached() auf.

Parameters:
statusListener -

removeStatusListener

public void removeStatusListener(StatusListener statusListener)
Entfernt einen StatusListener.

Parameters:
statusListener -
See Also:
addStatusListener(StatusListener)

calulateStep

public void calulateStep()
Berechnet und setzt anhand der akuellen Position des Roboters neue Geschwindigkeiten für die beiden Räder.


getSpeedWish

public int getSpeedWish()
Liefert die Geschwindigkeit, die der Navigator gerade gerne fahren würde, woran er allerdings möglicherweise vom Kondensator gehindert wird.

Returns:
Geschwindigkeit vorm Kondensator

getSpeed

public int getSpeed()

getRealSpeed

public int getRealSpeed()
Liefert anhand der Entfernung zum Ziel, der Bildqualität der Position etc. die momentan gefahrene Geschwindigkeit. Liefert also ein anderes Ergebnis, als mit setSpeed(int) gesetzt wurde.

Returns:
Geschwindigkeit nach Kondensator etc

setSpeed

public void setSpeed(int speed)
Setzt die globale Maximalgeschwindigkeit. Achtung: getSpeed() liefert möglicherweise etwas anderes.

Parameters:
speed -

close

public void close()
Beendet den Navigator