jAER project on SourceForge

org.ine.telluride.jaer.wowwee
Class RoboQuadSocialSonar

java.lang.Object
  extended by net.sf.jaer.eventprocessing.EventFilter
      extended by net.sf.jaer.eventprocessing.EventFilter2D
          extended by org.ine.telluride.jaer.wowwee.RoboQuadSocialSonar
All Implemented Interfaces:
FrameAnnotater

public class RoboQuadSocialSonar
extends EventFilter2D
implements FrameAnnotater

Demonstrates Javier Movellen's social sonar ideas (simplified grossly) using the RoboQuad from WowWee and an AE Sensor. The AE sensor is used to detect a response to an utterance from the RoboQuad based on simple measures of event rate.

Author:
tobi

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
RoboQuadSocialSonar(AEChip chip)
           
 
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.
 int getComputeIntervalMs()
           
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 float getModulationAveragingTauMs()
           
 float getModulationCornerFreqHz()
           
 float getModulationPoleFreqHz()
           
 int getPingDurationMs()
           
 float getPingProb()
           
 int getQuietDurationForPingMs()
           
 float getResponseFractionThreshold()
           
 float getResponseModulationThreshold()
           
 int getWaitForResponseDurationMs()
           
 void initFilter()
          this should allocate and initialize memory: it may be called when the chip e.g.
 boolean isFilterEnabled()
          Filters can be enabled for processing.
 boolean isPrintStats()
           
 void resetFilter()
          should reset the filter to initial state
 void setComputeIntervalMs(int computeIntervalMs)
           
 void setFilterEnabled(boolean yes)
          Resets the filter
 void setModulationAveragingTauMs(float modulationAveragingTauMs)
           
 void setModulationCornerFreqHz(float modulationCornerFreqHz)
           
 void setModulationPoleFreqHz(float modulationPoleFreqHz)
           
 void setPingDurationMs(int pingDurationMs)
           
 void setPingProb(float pingProb)
           
 void setPrintStats(boolean printStats)
           
 void setQuietDurationForPingMs(int quietDurationForPingMs)
           
 void setResponseFractionThreshold(float responseFractionThreshold)
           
 void setResponseModulationThreshold(float responseModulationThreshold)
           
 void setWaitForResponseDurationMs(int waitForResponseDurationMs)
           
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter2D
checkOutputPacketEventType, checkOutputPacketEventType, getEnclosedFilter, resetOut, setEnclosedFilter
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter
getChip, getDescription, getEnclosedFilterChain, getEnclosingFilter, getPrefs, getPropertyChangeSupport, getPropertyTooltip, isAnnotationEnabled, isEnclosed, 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

RoboQuadSocialSonar

public RoboQuadSocialSonar(AEChip chip)
Method Detail

getModulationCornerFreqHz

public float getModulationCornerFreqHz()

setModulationCornerFreqHz

public void setModulationCornerFreqHz(float modulationCornerFreqHz)

getModulationPoleFreqHz

public float getModulationPoleFreqHz()

setModulationPoleFreqHz

public void setModulationPoleFreqHz(float modulationPoleFreqHz)

getModulationAveragingTauMs

public float getModulationAveragingTauMs()

setModulationAveragingTauMs

public void setModulationAveragingTauMs(float modulationAveragingTauMs)

isPrintStats

public boolean isPrintStats()

isFilterEnabled

public boolean isFilterEnabled()
Description copied from class: EventFilter
Filters can be enabled for processing.

Overrides:
isFilterEnabled in class EventFilter
Returns:
true if filter is enabled

setPrintStats

public void setPrintStats(boolean printStats)

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

setFilterEnabled

public void setFilterEnabled(boolean yes)
Description copied from class: EventFilter2D
Resets the filter

Overrides:
setFilterEnabled in class EventFilter2D
Parameters:
yes - true to reset
See Also:
EventFilter.setPreferredEnabledState()

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

getPingProb

public float getPingProb()

setPingProb

public void setPingProb(float pingProb)

getPingDurationMs

public int getPingDurationMs()

setPingDurationMs

public void setPingDurationMs(int pingDurationMs)

getWaitForResponseDurationMs

public int getWaitForResponseDurationMs()

setWaitForResponseDurationMs

public void setWaitForResponseDurationMs(int waitForResponseDurationMs)

getResponseFractionThreshold

public float getResponseFractionThreshold()

setResponseFractionThreshold

public void setResponseFractionThreshold(float responseFractionThreshold)

getResponseModulationThreshold

public float getResponseModulationThreshold()

setResponseModulationThreshold

public void setResponseModulationThreshold(float responseModulationThreshold)

getQuietDurationForPingMs

public int getQuietDurationForPingMs()

setQuietDurationForPingMs

public void setQuietDurationForPingMs(int quietDurationForPingMs)

getComputeIntervalMs

public int getComputeIntervalMs()

setComputeIntervalMs

public void setComputeIntervalMs(int computeIntervalMs)

jAER project on SourceForge