3 from PyQt4
import QtGui
4 from topics
import TOPIC_EPISODE_RESULT
8 from collections
import deque
9 from reinforcement_learning.msg
import EpisodeResult
13 global episode_count, plot_window
14 reward_list.append(msg.reward)
15 length_list.append(msg.length)
17 reward_plot.prepareGeometryChange()
18 reward_plot.setData(range(episode_count)[-plot_window:], reward_list)
19 length_plot.prepareGeometryChange()
20 length_plot.setData(range(episode_count)[-plot_window:], length_list)
23 rospy.init_node(
'reinforcement_learning_plotter', anonymous=
True)
25 plot_window = rospy.get_param(
"~plot_window")
27 reward_list = deque(maxlen=plot_window)
28 length_list = deque(maxlen=plot_window)
31 app = QtGui.QApplication(sys.argv)
32 app_window = pg.GraphicsWindow(title=
'Learning Progress')
33 main_plot = app_window.addPlot(title=
'Episodes')
37 length_plot = main_plot.plot(pen=
'g', name=
'length')
38 reward_plot = main_plot.plot(pen=
'r', name='reward')
40 rospy.Subscriber(TOPIC_EPISODE_RESULT, EpisodeResult, update_plot)
42 if (sys.flags.interactive != 1)
or not hasattr(QtCore,
'PYQT_VERSION'):