|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.jaer.eventprocessing.EventFilter
net.sf.jaer.eventprocessing.EventFilter2D
ch.unizh.ini.jaer.chip.retina.sensorymotor.Batter
public class Batter
Controls a batting robot that uses two servo motors and two retinas in stereo vision to hit a ball.
Ball tracking uses a modified ClusterTracker to simultaneously track the ball in two retinas. The ball is independently tracked in each retina and the tracking is constrained, or hinted, by the tracking in the other retina. Initially there are no visible clusters in either retina. As soon as there is a visible cluster in one retina the cluster in the other retina is initialized with the first retina's cluster. Then the two clusters have an average x,y location and a disparity that is used to compute the distance to the ball.
Field Summary | |
---|---|
protected static java.util.logging.Logger |
log
|
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter2D |
---|
enclosedFilter, out |
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter |
---|
annotationEnabled, chip, enclosedFilterChain, filterEnabled, perf, propertyTooltipMap, support |
Constructor Summary | |
---|---|
Batter(AEChip chip)
Creates a new instance of Batter |
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. |
java.lang.Object |
getFilterState()
should return the filter state in some useful form |
float |
getSwingAngleMax()
|
float |
getSwingBallDistance()
|
float |
getSwingHeightMax()
|
float |
getSwingHeightMin()
|
void |
initFilter()
this should allocate and initialize memory: it may be called when the chip e.g. |
boolean |
isDynamicSwingHeightEnabled()
|
boolean |
isSwapServos()
|
void |
resetFilter()
should reset the filter to initial state |
void |
setDynamicSwingHeightEnabled(boolean dynamicSwingHeightEnabled)
|
void |
setFilterEnabled(boolean yes)
Resets the filter |
void |
setSwapServos(boolean swapServos)
|
void |
setSwingAngleMax(float swingAngleMax)
sets max extent of swing |
void |
setSwingBallDistance(float swingDistance)
|
void |
setSwingHeightMax(float swingHeightMax)
|
void |
setSwingHeightMin(float swingHeightMin)
|
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, 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 |
Field Detail |
---|
protected static java.util.logging.Logger log
Constructor Detail |
---|
public Batter(AEChip chip)
Method Detail |
---|
public EventPacket<?> filterPacket(EventPacket<?> in)
EventFilter2D
filterPacket
in class EventFilter2D
in
- the input packet
public java.lang.Object getFilterState()
EventFilter
getFilterState
in class EventFilter
public void resetFilter()
EventFilter
resetFilter
in class EventFilter
public void initFilter()
EventFilter
initFilter
in class EventFilter
public void setFilterEnabled(boolean yes)
EventFilter2D
setFilterEnabled
in class EventFilter2D
yes
- true to resetEventFilter.setPreferredEnabledState()
public void annotate(float[][][] frame)
FrameAnnotater
annotate
in interface FrameAnnotater
frame
- the RGB pixel information. First dimension is Y, second is X, third is RGBpublic void annotate(java.awt.Graphics2D g)
FrameAnnotater
annotate
in interface FrameAnnotater
g
- the Graphics2D contextpublic void annotate(javax.media.opengl.GLAutoDrawable drawable)
FrameAnnotater
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();
annotate
in interface FrameAnnotater
drawable
- the OpenGL drawable components, e.g., GLCanvaspublic float getSwingBallDistance()
public void setSwingBallDistance(float swingDistance)
public boolean isSwapServos()
public void setSwapServos(boolean swapServos)
public float getSwingHeightMin()
public void setSwingHeightMin(float swingHeightMin)
public float getSwingHeightMax()
public void setSwingHeightMax(float swingHeightMax)
public float getSwingAngleMax()
public void setSwingAngleMax(float swingAngleMax)
public boolean isDynamicSwingHeightEnabled()
public void setDynamicSwingHeightEnabled(boolean dynamicSwingHeightEnabled)
|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |