Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rqt_plot: Add button to clear the history without clearing the topics #231

Closed
jbohren opened this issue May 26, 2014 · 12 comments
Closed

rqt_plot: Add button to clear the history without clearing the topics #231

jbohren opened this issue May 26, 2014 · 12 comments
Milestone

Comments

@jbohren
Copy link
Member

jbohren commented May 26, 2014

Currently, if rqt_plot has been running for a while, it gets very slow. The only fix for this is to clear out the history and topics. It would be great if there was a button that only cleared the history.

@trainman419
Copy link
Contributor

+1

I would like to see the button next to Pause clear the history, and a separate option on the - menu that removes all topics.

@trainman419
Copy link
Contributor

Side note: the QwtPlot backend doesn't have this problem because it maintains a fixed-size buffer of past data.

@adolfo-rt
Copy link

What I'd really like to see here is a configurable buffer length, like rxplot used to have (the -b argument I couldn't live without). A 'clear history' button still requires periodic human intervention which is undesired.

Side note: the QwtPlot backend doesn't have this problem because it maintains a fixed-size buffer of past data.

The bad thing about this backend is that AFAIK it does not properly handle message timestamps.

@DorianScholz
Copy link
Member

Have you tried out the pyqtgraph backend? It's plotting performance is nearly as good as qwtplot and it handles timestamps. But I do not know how well it's performance degrades over time. Please let me know.
Nevertheless I'm all for changing the button next to pause to act as "clear history" and adding a "clear all topics" to the "-" button.

@adolfo-rt
Copy link

Have you tried out the pyqtgraph backend?

Yes, the refresh rate also degrades over time. I fired rqt_plot with the pyqtgraph backend and performed two tests on topic data that is being published at 50Hz:

  • Display only one topic field. After 30min the slowdown is noticeable, but tolerable.
  • Display 10 topic fields. After 30min, the slowdown is very significant, the refresh rate drops to ~1Hz.

@DorianScholz
Copy link
Member

Thanks for the tests.
I think the best option then is to limit the buffer length in the update_values method of the plotting backends.
As @adolfo-rt said it would be desirable to make this limit configurable, e.g. in the configuration dialog.

trainman419 added a commit to trainman419/rqt_common_plugins that referenced this issue Jun 5, 2014
@ablasdel ablasdel added this to the untargeted milestone Jun 9, 2014
trainman419 added a commit to trainman419/rqt_common_plugins that referenced this issue Jun 10, 2014
@adolfo-rt
Copy link

How much dev overhead do you think it would take to keep a specified buffer size instead of (or complementary to) the single-shot clearing proposed in #245?. For rqt_plot, I imagine buffer length management would take place whenever new data arrives, but I wonder how this fits within the more general effort that is taking place in rqt_common_plugins.

@trainman419
Copy link
Contributor

I could probably do that with another day's work, but I have a couple of deadlines coming up and don't have much time to spend on this in the next few weeks.

@adolfo-rt
Copy link

If you could sketch the general idea of what needs to be changed and where, I might give it a go. I'm not familiar with the codebase, and a good initial condition would make things go faster.

@trainman419
Copy link
Contributor

In rqt_plot/src/rqt_plot/data_plot/__init__.py you'll want to modify the DataPlot class so that it limits the internal buffer size.

You'll also want to add an option to change the buffer size as part of the doSettingsDialog method.

Since the DataPlot is used from more than one place, and not all of them make sense to set a limit on the buffer size, there should probably be a way to disable the buffer size option completely. For example, the new rqt_bag plotting plugin uses the DataPlot widget, and limiting the internal buffer size there would not be a good idea.

@adolfo-rt
Copy link

Thanks @trainman419.

Since the DataPlot is used from more than one place, and not all of them make sense to set a limit on the buffer size, there should probably be a way to disable the buffer size option completely.

Exactly. I want to keep the larger picture in mind as to not affect negatively some DataPlot usecases in favor of others. I'll let you know what comes out of this.

ablasdel pushed a commit that referenced this issue Jun 27, 2014
@ablasdel
Copy link
Contributor

ablasdel commented Jul 3, 2014

closing as resolved due to merging of #245

@ablasdel ablasdel closed this as completed Jul 3, 2014
severin-lemaignan referenced this issue in severin-lemaignan/robotpkg Aug 18, 2014
Changes since 0.2.16:

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_reconfigure
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------

0.3.7 (2014-07-11)
------------------
* fix slider bar, add context menus for common operations (`#251
<https://github.com/ros-visualization/rqt_common_plugins/issues/251>`_)
* fix bug in float range calculations (`#241
<https://github.com/ros-visualization/rqt_common_plugins/issues/241>`_)
* remove experimental suffix from rqt_reconfigure (`#256
<https://github.com/ros-visualization/rqt_common_plugins/issues/256>`_)
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------
* remove unnecessary margins to improve usability on small screens (`#228
<https://github.com/ros-visualization/rqt_common_plugins/issues/228>`_)

0.3.5 (2014-05-07)
------------------
* numerous improvements and bug fixes (`#209
<https://github.com/ros-visualization/rqt_common_plugins/pull/209>`_, `#210
<https://github.com/ros-visualization/rqt_common_plugins/pull/210>`_)
* add option to open list of names from command line (`#214
<https://github.com/ros-visualization/rqt_common_plugins/pull/214>`_)

0.3.4 (2014-01-28)
------------------

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)
* mark rqt_launch and rqt_reconfigure as experimental (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------

0.3.0 (2013-08-28)
------------------
* fix updating range limits (`#108
<https://github.com/ros-visualization/rqt_common_plugins/issues/108>`_)
* fix layout quirks (`#150
<https://github.com/ros-visualization/rqt_common_plugins/issues/150>`_)
* fix icon for closing a node (`#48
<https://github.com/ros-visualization/rqt_common_plugins/issues/48>`_)
* fix handling of enum parameters with strings

0.2.17 (2013-07-04)
-------------------
* Improvement; "GUI hangs for awhile or completely, when any one of nodes
doesn't return any value" (`#81
<https://github.com/ros-visualization/rqt_common_plugins/issues/81>`_)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_topic
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------

0.3.7 (2014-07-11)
------------------
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------

0.3.5 (2014-05-07)
------------------

0.3.4 (2014-01-28)
------------------

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)
* catch and show exceptions `#198
<https://github.com/ros-visualization/rqt_common_plugins/issues/198>`_

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------
* improve rqt_topic initialization time (`#62
<https://github.com/ros-visualization/rqt_common_plugins/issues/62>`_)
* modified toggling topics to use checkbox instead of context menu (`#75
<https://github.com/ros-visualization/rqt_common_plugins/issues/75>`_)

0.3.0 (2013-08-28)
------------------
* fix cleaning old data in rqt_topic (fix `#74
<https://github.com/ros-visualization/rqt_common_plugins/issues/74>`_)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_top
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------

0.3.7 (2014-07-11)
------------------
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------

0.3.5 (2014-05-07)
------------------

0.3.4 (2014-01-28)
------------------
* fix sort order for numerical fields (`#205
<https://github.com/ros-visualization/rqt_common_plugins/issues/205>`_)

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)
* fix an error caused by SIGKILLing nodes

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------

0.3.0 (2013-08-28)
------------------
* remove copy of psutil module and implement missing function (`#105
<https://github.com/ros-visualization/rqt_common_plugins/issues/105>`_)

0.2.17 (2013-07-06)
-------------------
* Embeds python-psutil in the package in order to be enabled on Ubuntu Precise
* first release of this package into hydro

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_image_view
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------

0.3.7 (2014-07-11)
------------------

0.3.6 (2014-06-02)
------------------

0.3.5 (2014-05-07)
------------------
* list image transport topics if parent image topic is not available (`#215
<https://github.com/ros-visualization/rqt_common_plugins/issues/215>`_)

0.3.4 (2014-01-28)
------------------

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)
* properly handle aligned images
* wrap cv calls in try-catch-block (`#201
<https://github.com/ros-visualization/rqt_common_plugins/issues/201>`_)

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------
* fix event handling for rqt_image_view enabling to run multiple instances
simultaneously (`#66
<https://github.com/ros-visualization/rqt_common_plugins/issues/66>`_)
* add rqt_image_view to global bin (`#168
<https://github.com/ros-visualization/rqt_common_plugins/issues/168>`_)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_bag_plugins
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------
* fix missing installation of resource subfolder

0.3.7 (2014-07-11)
------------------
* add plotting plugin (`#239
<https://github.com/ros-visualization/rqt_common_plugins/issues/239>`_)
* fix rqt_bag to plot array members (`#253
<https://github.com/ros-visualization/rqt_common_plugins/issues/253>`_)
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------

0.3.5 (2014-05-07)
------------------
* fix PIL/Pillow error (`#224
<https://github.com/ros-visualization/rqt_common_plugins/issues/224>`_)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_plot
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------
* fix missing installation of Python subpackage

0.3.7 (2014-07-11)
------------------
* fix missing import (`#248
<https://github.com/ros-visualization/rqt_common_plugins/issues/248>`_)
* significant improvements and unification of different plot backends (`#239
<https://github.com/ros-visualization/rqt_common_plugins/issues/239>`_, `#231
<https://github.com/ros-visualization/rqt_common_plugins/issues/231>`_)
* make more things plottable including arrays and simple message types (`#246
<https://github.com/ros-visualization/rqt_common_plugins/issues/246>`_)
* make DataPlot a proxy for its plot widget, redraw after loading new data, add
clear_values (`#236
<https://github.com/ros-visualization/rqt_common_plugins/issues/236>`_)
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------
* subscribe to any known topic, even if currently not available (`#233
<https://github.com/ros-visualization/rqt_common_plugins/pull/233>`_)

0.3.5 (2014-05-07)
------------------
* change minimum padding to enable viewing arbitrarily small values (`#223
<https://github.com/ros-visualization/rqt_common_plugins/pull/223>`_)
* redraw plot only on new data to reduce cpu load, especially with matplot
(`#219 <https://github.com/ros-visualization/rqt_common_plugins/issues/219>`_)

0.3.4 (2014-01-28)
------------------

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)
* add checkbox to toggle automatic scrolling of plot with data
* add simple legend for pyqtgraph backend

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------

0.3.0 (2013-08-28)
------------------
* fix waiting on unpublished topics (`#110
<https://github.com/ros-visualization/rqt_common_plugins/issues/110>`_)
* fix rendering of icons on OS X (`ros-visualization/rqt#83
<https://github.com/ros-visualization/rqt/issues/83>`_)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_console
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------

0.3.7 (2014-07-11)
------------------
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------

0.3.5 (2014-05-07)
------------------

0.3.4 (2014-01-28)
------------------

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)
* use icons instead of text when available, refactor pause/resume button

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------
* rewrite of rqt_console to drastically improve performance (`#186
<https://github.com/ros-visualization/rqt_common_plugins/pull/186>`_)

0.3.0 (2013-08-28)
------------------
* pause button no more saves state (`#125
<https://github.com/ros-visualization/rqt_common_plugins/issues/125>`_)
* persist message limit (`#138
<https://github.com/ros-visualization/rqt_common_plugins/issues/138>`_)
* add ability to set logger level (`#117
<https://github.com/ros-visualization/rqt_common_plugins/issues/117>`_)
* add tooltips to table cells (`#143
<https://github.com/ros-visualization/rqt_common_plugins/issues/143>`_)
* improve labels for filters (`#146
<https://github.com/ros-visualization/rqt_common_plugins/issues/146>`_)
* fix time column when loading data from file (`#160
<https://github.com/ros-visualization/rqt_common_plugins/issues/160>`_)
* fix applying message limit on change (`#133
<https://github.com/ros-visualization/rqt_common_plugins/issues/133>`_)
* fix clear button to remove all messages (`#141
<https://github.com/ros-visualization/rqt_common_plugins/issues/141>`_)
* fix sorting to use row index to decide order between equal values (except for
time column) (`#124
<https://github.com/ros-visualization/rqt_common_plugins/issues/124>`_)
* fix locking of message queue
* fix rendering of icons on OS X (`ros-visualization/rqt#83
<https://github.com/ros-visualization/rqt/issues/83>`_)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package rqt_graph
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.8 (2014-07-15)
------------------

0.3.7 (2014-07-11)
------------------
* fix compatibility with Groovy, use TopicStatistics only if available (`#252
<https://github.com/ros-visualization/rqt_common_plugins/issues/252>`_)
* export architecture_independent flag in package.xml (`#254
<https://github.com/ros-visualization/rqt_common_plugins/issues/254>`_)

0.3.6 (2014-06-02)
------------------

0.3.5 (2014-05-07)
------------------
* add displaying of topic/connection statistics along edges (`#214
<https://github.com/ros-visualization/rqt_common_plugins/pull/214>`_)
* using CATKIN_ENABLE_TESTING to optionally configure tests (`#220
<https://github.com/ros-visualization/rqt_common_plugins/pull/220>`_)

0.3.4 (2014-01-28)
------------------

0.3.3 (2014-01-08)
------------------
* add groups for rqt plugins, renamed some plugins (`#167
<https://github.com/ros-visualization/rqt_common_plugins/issues/167>`_)

0.3.2 (2013-10-14)
------------------

0.3.1 (2013-10-09)
------------------
* modified zooming method to work better on high-res trackpads like Macbook
Pros (`#187
<https://github.com/ros-visualization/rqt_common_plugins/pull/187>`_)

0.3.0 (2013-08-28)
------------------
* fix rendering of icons on OS X (`ros-visualization/rqt#83
<https://github.com/ros-visualization/rqt/issues/83>`_)

0.2.17 (2013-07-04)
-------------------
* Improve checkbox labels and tooltips wording.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants