public class VisualActionObserver extends javax.swing.JFrame implements ActionObserver, EnvironmentObserver
ActionObserver and EnvironmentObserver interfaces.
It updates the visualizer to show the resulting state of an action call. After rendering, the client thread is blocked
for a specified interval of time to allow the state to be observed (by default the value is set to 17ms, which is about 60FPS).
This class will also render the new state of an Environment after
a Environment.resetEnvironment() message is observed and block for the
same interval of time.
This class is especially useful for watching learning algorithms or Monte Carlo-like planning algorithms in action.
Environment
(so that the action is also rendered) so long as
the input Visualizer has a set StateActionRenderLayer.
To enable this support, pass the setRepaintOnActionInitiation(boolean) true. If you would then
like to disable rendering the post-state from the observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
method, pass the setRepaintStateOnEnvironmentInteraction(boolean) false.javax.swing.JFrame.AccessibleJFramejava.awt.Window.AccessibleAWTWindow, java.awt.Window.Type| Modifier and Type | Field and Description |
|---|---|
protected long |
actionRenderDelay
How long to wait in ms for a state to be rendered before returning control to the agent.
|
protected int |
cHeight
The height of the painter
|
protected int |
cWidth
The width of the painter
|
protected Domain |
domain
The domain this visualizer is rendering
|
protected Visualizer |
painter
The visualizer that will render states
|
protected boolean |
repaintOnActionInitiation
If true, then a a state-action pair is rendered on calls to
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction)
so long as the input Visualizer has a set StateActionRenderLayer. |
protected boolean |
repaintStateOnEnvironmentInteraction
If true (which is default), then the post-state in an
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
is rendered. |
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabledCROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSORBOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT| Constructor and Description |
|---|
VisualActionObserver(Domain domain,
Visualizer painter)
Initializes with a visualizer size of 800x800
|
VisualActionObserver(Domain domain,
Visualizer painter,
int cWidth,
int cHeight)
Initializes with a visualizer
|
| Modifier and Type | Method and Description |
|---|---|
void |
actionEvent(State s,
GroundedAction ga,
State sp) |
Visualizer |
getPainter() |
void |
initGUI()
Initializes the visual explorer GUI and presents it to the user.
|
void |
observeEnvironmentActionInitiation(State o,
GroundedAction action)
This method is called when an
Environment receives an action to execute, but before the
Environment has completed execution. |
void |
observeEnvironmentInteraction(EnvironmentOutcome eo)
This method is called every time an
Environment is interacted with. |
void |
observeEnvironmentReset(Environment resetEnvironment)
This method is called every time an
Environment is reset (has the Environment.resetEnvironment() method called). |
void |
replayEpisode(EpisodeAnalysis ea)
Causes the visualizer to replay through the provided
EpisodeAnalysis object. |
void |
setFrameDelay(long delay)
Sets how long to wait in ms for a state to be rendered before returning control the agent.
|
void |
setPainter(Visualizer painter) |
void |
setRepaintOnActionInitiation(boolean repaintOnActionInitiation)
Sets whether the state-action should be updated when an action is initiated in an
Environment via the
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction) method. |
void |
setRepaintStateOnEnvironmentInteraction(boolean repaintStateOnEnvironmentInteraction)
Sets whether the state should be updated on environment interactions events (the
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
or only with state-actions in the observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction). |
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateaddNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecoratedaddPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFrontadd, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleprotected Domain domain
protected Visualizer painter
protected int cWidth
protected int cHeight
protected long actionRenderDelay
protected boolean repaintStateOnEnvironmentInteraction
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
is rendered.protected boolean repaintOnActionInitiation
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction)
so long as the input Visualizer has a set StateActionRenderLayer. Default value is false.public VisualActionObserver(Domain domain, Visualizer painter)
domain - the domain that is being visualizedpainter - the painter for rendering statespublic VisualActionObserver(Domain domain, Visualizer painter, int cWidth, int cHeight)
domain - the domain that is being visualizedpainter - the painter for rendering statescWidth - the width of the state visualization areacHeight - the height of the state visualization areapublic void setFrameDelay(long delay)
delay - how long to wait in ms for a state to be rendered before returning control the agent.public Visualizer getPainter()
public void setPainter(Visualizer painter)
public void setRepaintStateOnEnvironmentInteraction(boolean repaintStateOnEnvironmentInteraction)
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
or only with state-actions in the observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction).repaintStateOnEnvironmentInteraction - if true, then update states with environment interactions; if false then only with environment action initiation.public void setRepaintOnActionInitiation(boolean repaintOnActionInitiation)
Environment via the
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction) method.repaintOnActionInitiation - if true, then state-action's are painted on action initiation; if false, they are not.public void initGUI()
public void actionEvent(State s, GroundedAction ga, State sp)
actionEvent in interface ActionObserverpublic void observeEnvironmentActionInitiation(State o, GroundedAction action)
EnvironmentObserverEnvironment receives an action to execute, but before the
Environment has completed execution.observeEnvironmentActionInitiation in interface EnvironmentObservero - the current Environment observation in which the the action begins execution.action - the GroundedAction which will be executed in the Environment.public void observeEnvironmentInteraction(EnvironmentOutcome eo)
EnvironmentObserverEnvironment is interacted with.observeEnvironmentInteraction in interface EnvironmentObservereo - the resulting EnvironmentOutcomepublic void observeEnvironmentReset(Environment resetEnvironment)
EnvironmentObserverEnvironment is reset (has the Environment.resetEnvironment() method called).observeEnvironmentReset in interface EnvironmentObserverresetEnvironment - the Environment that was reset.public void replayEpisode(EpisodeAnalysis ea)
EpisodeAnalysis object. The initial state
of the provided episode is first rendered for the given refresh delay of this object, and then each
action and resulting state in the episode is feed through the actionEvent(State, GroundedAction, State)
method of this object.ea - the episode to be replayed.