jAER project on SourceForge

ch.unizh.ini.jaer.projects.rccar
Class FancyDriver

java.lang.Object
  extended by net.sf.jaer.eventprocessing.EventFilter
      extended by net.sf.jaer.eventprocessing.EventFilter2D
          extended by ch.unizh.ini.jaer.projects.rccar.FancyDriver
All Implemented Interfaces:
FrameAnnotater

public class FancyDriver
extends EventFilter2D
implements FrameAnnotater

The FancyDriver controls the RcCar

Author:
Christian Braendli, Robin Ritz

Field Summary
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter2D
enclosedFilter, out
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter
annotationEnabled, chip, enclosedFilterChain, filterEnabled, log, perf, propertyTooltipMap, support
 
Constructor Summary
FancyDriver(AEChip chip)
          Creates a new instance of FancyDriver
 
Method Summary
 void annotate(float[][][] frame)
          annotate the RGB frame somehow by color pixels in the rendered pixel frame data.
 void annotate(javax.media.opengl.GLAutoDrawable drawable)
          Each annotator enters annotate with graphics context current, in coordinates with pixel 0,0 in LL corner (note opposite from Java2D) and pixel spacing 1 unit after the scaling transform (which is already active).
 void annotate(java.awt.Graphics2D g)
          each annotator is called by the relevant class (e.g.
 EventPacket<?> filterPacket(EventPacket<?> in)
          Subclasses implement this method to define custom processing.
 float getAngleGain()
           
 float getDefaultSpeed()
           
 float getDefaultSteeringAngle()
           
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 float getKd()
           
 float getKi()
           
 float getKp()
           
 float getLateralGain()
           
 float getPhiK()
           
 float getPhipK()
           
 float getServoSteerCommand()
           
 boolean getUseLQRController()
           
 boolean getUsePIDController()
           
 boolean getUseRouteFromBlender()
           
 boolean getUseUserK()
           
 float getXK()
           
 float getXpK()
           
 void initFilter()
          this should allocate and initialize memory: it may be called when the chip e.g.
 boolean isFlipSteering()
           
 boolean isLoggingEnabled()
           
 boolean isSendControlToBlenderEnabled()
           
 boolean isShowAccelerometerGUI()
           
 boolean isUseHingeLineTracker()
          Gets the actual steering command based on flipSteering
 void resetFilter()
          should reset the filter to initial state
 void setAngleGain(float angleGain)
           
 void setDefaultSpeed(float defaultSpeed)
           
 void setDefaultSteeringAngle(float defaultSteeringAngle)
           
 void setFlipSteering(boolean flipSteering)
          If set true, then drive towards events (road is textured), if false, drive away from events (side is textured).
 void setKd(float kd)
           
 void setKi(float ki)
           
 void setKp(float kp)
           
 void setLateralGain(float lateralGain)
           
 void setLoggingEnabled(boolean loggingEnabled)
           
 void setPhiK(float phiK)
           
 void setPhipK(float phipK)
           
 void setSendControlToBlenderEnabled(boolean sendControlToBlenderEnabled)
           
 void setShowAccelerometerGUI(boolean showAccelerometerGUI)
           
 void setUseHingeLineTracker(boolean useHingeLineTracker)
           
 void setUseLQRController(boolean useLQRController)
           
 void setUsePIDController(boolean usePIDController)
           
 void setUseRouteFromBlender(boolean useRouteFromBlender)
           
 void setUseUserK(boolean useUserK)
           
 void setXK(float xK)
           
 void setXpK(float xpK)
           
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter2D
checkOutputPacketEventType, checkOutputPacketEventType, getEnclosedFilter, resetOut, setEnclosedFilter, setFilterEnabled
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter
getChip, getDescription, getEnclosedFilterChain, getEnclosingFilter, getPrefs, getPropertyChangeSupport, getPropertyTooltip, isAnnotationEnabled, isEnclosed, isFilterEnabled, prefsEnabledKey, setAnnotationEnabled, setChip, setEnclosed, setEnclosedFilter, setEnclosedFilterChain, setEnclosingFilter, setPreferredEnabledState, setPrefs, setPropertyTooltip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.jaer.graphics.FrameAnnotater
isAnnotationEnabled, setAnnotationEnabled
 

Constructor Detail

FancyDriver

public FancyDriver(AEChip chip)
Creates a new instance of FancyDriver

Method Detail

filterPacket

public EventPacket<?> filterPacket(EventPacket<?> in)
Description copied from class: EventFilter2D
Subclasses implement this method to define custom processing.

Specified by:
filterPacket in class EventFilter2D
Parameters:
in - the input packet
Returns:
the output packet

getFilterState

public java.lang.Object getFilterState()
Description copied from class: EventFilter
should return the filter state in some useful form

Specified by:
getFilterState in class EventFilter

resetFilter

public void resetFilter()
Description copied from class: EventFilter
should reset the filter to initial state

Specified by:
resetFilter in class EventFilter

initFilter

public void initFilter()
Description copied from class: EventFilter
this should allocate and initialize memory: it may be called when the chip e.g. size parameters are changed after creation of the filter

Specified by:
initFilter in class EventFilter

annotate

public void annotate(float[][][] frame)
Description copied from interface: FrameAnnotater
annotate the RGB frame somehow by color pixels in the rendered pixel frame data.

Specified by:
annotate in interface FrameAnnotater
Parameters:
frame - the RGB pixel information. First dimension is Y, second is X, third is RGB

annotate

public void annotate(java.awt.Graphics2D g)
Description copied from interface: FrameAnnotater
each annotator is called by the relevant class (e.g. EyeTracker) and enters annotate with graphics context current, in coordinates with pixel 0,0 in UL corner and pixel spacing 1 unit before scaling transform (which is already active).

Specified by:
annotate in interface FrameAnnotater
Parameters:
g - the Graphics2D context

annotate

public void annotate(javax.media.opengl.GLAutoDrawable drawable)
Description copied from interface: FrameAnnotater
Each annotator enters annotate with graphics context current, in coordinates with pixel 0,0 in LL corner (note opposite from Java2D) and pixel spacing 1 unit after the scaling transform (which is already active). The FrameAnnotater then can use JOGL calls to render to the screen by getting the GL context, e.g. the following code, used in the context of an AEChip object, draws a golden lines from LL to UR of the pixel array.
        GL gl = drawable.getGL();
        gl.glBegin(GL.GL_LINES);
        gl.glColor3f(.5f, .5f, 0);
        gl.glVertex2f(0, 0);
        gl.glVertex2f(getSizeX() - 1, getSizeY() - 1);
        gl.glEnd();
 

Specified by:
annotate in interface FrameAnnotater
Parameters:
drawable - the OpenGL drawable components, e.g., GLCanvas

isFlipSteering

public boolean isFlipSteering()

setFlipSteering

public void setFlipSteering(boolean flipSteering)
If set true, then drive towards events (road is textured), if false, drive away from events (side is textured).


isUseHingeLineTracker

public boolean isUseHingeLineTracker()
Gets the actual steering command based on flipSteering


setUseHingeLineTracker

public void setUseHingeLineTracker(boolean useHingeLineTracker)

getServoSteerCommand

public float getServoSteerCommand()

getDefaultSpeed

public float getDefaultSpeed()

getDefaultSteeringAngle

public float getDefaultSteeringAngle()

setDefaultSpeed

public void setDefaultSpeed(float defaultSpeed)

setDefaultSteeringAngle

public void setDefaultSteeringAngle(float defaultSteeringAngle)

isSendControlToBlenderEnabled

public boolean isSendControlToBlenderEnabled()

setSendControlToBlenderEnabled

public void setSendControlToBlenderEnabled(boolean sendControlToBlenderEnabled)

isShowAccelerometerGUI

public boolean isShowAccelerometerGUI()

setShowAccelerometerGUI

public void setShowAccelerometerGUI(boolean showAccelerometerGUI)

isLoggingEnabled

public boolean isLoggingEnabled()

setLoggingEnabled

public void setLoggingEnabled(boolean loggingEnabled)

setUsePIDController

public void setUsePIDController(boolean usePIDController)

getUsePIDController

public boolean getUsePIDController()

setUseLQRController

public void setUseLQRController(boolean useLQRController)

getUseLQRController

public boolean getUseLQRController()

setUseUserK

public void setUseUserK(boolean useUserK)

getUseUserK

public boolean getUseUserK()

setUseRouteFromBlender

public void setUseRouteFromBlender(boolean useRouteFromBlender)

getUseRouteFromBlender

public boolean getUseRouteFromBlender()

setKi

public void setKi(float ki)

getKi

public float getKi()

setKd

public void setKd(float kd)

getKd

public float getKd()

setKp

public void setKp(float kp)

getKp

public float getKp()

setXK

public void setXK(float xK)

getXK

public float getXK()

setXpK

public void setXpK(float xpK)

getXpK

public float getXpK()

setPhiK

public void setPhiK(float phiK)

getPhiK

public float getPhiK()

setPhipK

public void setPhipK(float phipK)

getPhipK

public float getPhipK()

getLateralGain

public float getLateralGain()

setLateralGain

public void setLateralGain(float lateralGain)

getAngleGain

public float getAngleGain()

setAngleGain

public void setAngleGain(float angleGain)

jAER project on SourceForge