anybotics / rqt_multiplot_plugin Goto Github PK
View Code? Open in Web Editor NEWAn rqt plugin for visualizing numeric values in multiple 2D plots.
License: GNU Lesser General Public License v3.0
An rqt plugin for visualizing numeric values in multiple 2D plots.
License: GNU Lesser General Public License v3.0
My plots are working great live, but I can't seem to plot from a bag.
There's some code here that looks like it accepts a multiplot-bag
argument, but it's not clear how that argument is supplied. Looks like #10 addresses breaking it out to the Python wrapper, and in the meantime it seems something like this should work, but it's not doing right thing for me:
rqt --standalone rqt_multiplot --args --multiplot-bag path/to/my.bag
The only other place readBag
is called looks like it's from a UI interaction, but there is commented out as well: https://github.com/ethz-asl/rqt_multiplot_plugin/blob/85f86a083eb47d5d8baefba168290b09fff333cf/rqt_multiplot/src/rqt_multiplot/MultiplotWidget.cpp#L109-L111
Is there something silly I'm missing here?
Hi,
I'm having issues with rqt_multiplot when plotting a value of an element of a covariance matrix from a nav_msgs/Odometry message on the y-axis and the simulation duration from a std_msgs/Duration message on the x-axis. I also plot linear velocity values from the same nav_msgs/Odometry message vs. the same duration values from the same std_msgs/Duration message and it works. I'm confused about this error as linear velocities and covariance matrix values have the same type, namely float64.
Is there a bug or did I miss something?
Hi, are there currently any plans or timeline to release this plugin for ROS Noetic?
A use case that pops up quite frequently is visualization of orientation data. Given that the standard representation are quaternions, the orientation they represent cannot be visualized easily by plotting (not counting the few % of people who can "see" quaternion orientations here). It would thus be very nice to optionally generate a rpy angle representation and plot that for quaternion data. Thoughts if this could be implemented somehow (i.e. perhaps via plugins for certain types or so)?
I made multiple configs for plotting and mainly want to use those with the "Import from bag file" functionality. This works well most of the time, but sometimes it just doesn't work and "nothing happens". The same happens to a lesser extend when playing back bag files. Some plotting configs work, some do not and it is completely unclear what the reasons could be. The existing verbose output option does not provide any useful information.
I'm currently using rqt_multiplot cloned from source (master) in my indigo setup.
Here is an example bag file.
If I clear my config, then select argo_tracker_joint_trajectory_controller_state.xml and import the bag file I get a plot and the following on the terminal:
[ INFO] [1484693965.379257674, 1484649926.288922911]: Loaded configuration from [file:///home/kohlbrecher/argo2/src/hector_rqt_multiplot_config/config/argo_tracker_joint_trajectory_controller_state.xml] [ INFO] [1484693976.333224726, 1484649926.288922911]: Read bag from [file:///media/kohlbrecher/data/argo_log/driving_test_paul/2017-01-17-23-48-52.bag]
If I clear my config, then select pdout.xml and import the bag file I get no plot and the following on the terminal:
[ INFO] [1484693997.489607086, 1484649926.288922911]: Loaded configuration from [file:///home/kohlbrecher/argo2/src/hector_rqt_multiplot_config/config/pdout.xml] [ INFO] [1484694009.362378172, 1484649926.288922911]: Read bag from [file:///media/kohlbrecher/data/argo_log/driving_test_paul/2017-01-17-23-48-52.bag]
Any hints and improvements indicating to the user what is going wrong are appreciated :)
hi. I followed all the instruction and installed the dependencies. still I get build error while running catkin build
Errors << rqt_multiplot:make /home/mobiiin/catkin_ws/logs/rqt_multiplot/build.make.014.log
/usr/bin/ld: cannot find -lQWT_LIBRARIES-NOTFOUND
collect2: error: ld returned 1 exit status
make[2]: *** [/home/mobiiin/catkin_ws/devel/.private/rqt_multiplot/lib/librqt_multiplot.so] Error 1
make[1]: *** [CMakeFiles/rqt_multiplot.dir/all] Error 2
make: *** [all] Error 2
I also have all the libqwt.so* files in /usr/lib/
Hi,
I've run-in a other problem. When I'm trying to plot a custom message, it seems that it not plotting the right component.
For a exemple if my message had X, Y, Z component and I tried to plot all of then, it would plot Y, X, X or something like that.
Thanks
I have successfully installed rat_multiplot via sudo apt-get install ros-kinetic-rqt-multiplot
and got the error below while running via rqt_multiplot
or rosrun rqt_multiplot rqt_multiplot
qt_gui_main() found no plugin matching "MultiplotPlugin"
Anyone know how to fix this kind of issue please help me out.
this is a part result from ls /opt/ros/kinetic/lib
...
rqt_bag
rqt_console
rqt_dep
rqt_graph
rqt_gui
rqt_image_view
rqt_launch
rqt_logger_level
rqt_moveit
rqt_msg
rqt_multiplot
rqt_nav_view
rqt_plot
rqt_pose_view
rqt_publisher
rqt_py_console
rqt_reconfigure
rqt_robot_monitor
rqt_robot_steering
rqt_runtime_monitor
rqt_rviz
rqt_service_caller
rqt_shell
rqt_srv
rqt_tf_tree
rqt_top
rqt_topic
rqt_web
...
I'm not sure what's the use case for that,
but I found strange that time frame and scale are defined at curve level rather than plot level.
Most of the times you want to set a time window of, say, 10 seconds for all the curves in a plot, because I can't really think of different time or value scales for individual curves in the same plot, which one would then be applied to the plot?
So I would suggest to move the scale and time sections up to the plot level, because I think it would make more sense, what do you think?
I mean, set off automatic adjust of axis and set a constant interval or adjust with mouse like rqt_plot.
This plugin rocks! Thank you very much bro!
I would love to see what this library is doing, unfortunately the text explanation is sparse and the images would be precious but they are missing.
Hello,
could you make a release of rqt_multiplot_plugin for ros melodic and lunar?
With multiple plots (joint positions on a robot arm against clock - so numbered subcategories of the "position" field) and a custom time frame of 0.5s, when saving these settings and then re-opening the configuration file these settings do not persist, and must then be individually re-set for each plot.
Not sure if a bug, or an enhancement feature for the future - just have to work around it at the moment by inputting the settings on each use
Bag data recorded over a longer period of time tends to get unwieldy, for this reason we split it up into 1GB chunks. Existing tools like rqt_bag
and rosbag
support this well and one can load multiple bags for instance by providing *.bag
as an argument. The same capability would be very useful for rqt_multiplot (both via command line and/or via selecting multiple files for import).
Hello,
thank you very much for rqt-multiplot!
I was wondering if you plan to extend rqt-multiplot with tabs in the near future. Thank you.
Multiplot crashes immediately with a segfault if I try to load data from a bagfile. Works fine if the bagfile is being played back with rosbag play
. Seemed to work fine on Kinetic, but doesn't seem to be working with Melodic.
[ INFO] [1555335543.646435217]: Loaded configuration from [file:///home/jburklund/bagfiles/2019-04-05-Wyss-ICP/mapping_localization_time.xml]
Gtk-Message: 15:39:06.650: GtkDialog mapped without a transient parent. This is discouraged.
terminate called after throwing an instance of 'pluginlib::CreateClassException'
what(): MultiLibraryClassLoader: Could not create object of class type rosbag::NoEncryptor as no factory exists for it. Make sure that the library exists and was explicitly loaded through MultiLibraryClassLoader::loadLibrary()
Aborted (core dumped)
I need to plot array data and to overcome lacking of such functions I did:
It looks something like this:
| |
| | |
| | | | |
BUT, each time new data come it plots in the same coordinate (since X is fixed for each curve) without clearing previous value (even if I have circular buffer with size of 1). So if I have 50 value it will stay 50 (even if actual data is 10) until bigger value appear. In this case it will become bigger and going back to 50 won't decrease bar size.
Can I somehow clean plot each time new data received?
Hello there,
thank you very much for rqt-multiplot! It is a really nice tool!
Is it possible to trigger to save pictures and text files automatically? for example using a console command.
I can find the function to save images and text files from void PlotWidget::saveToImageFile(const QString& fileName)
and void PlotWidget::saveToTextFile(const QString& fileName)
. Can I create another function which will wait for trigger signal and save images and files automaticlly?
Any help is appreciated!
Is there any plan to port this project to ROS2?
How Could I change font size of Axis titles?
While executing the following command in the terminal - sudo apt-get install ros-kinetic-rqt-multiplot
I get the following error:
`Err:1 http://packages.ros.org/ros/ubuntu xenial/main amd64 ros-kinetic-variant-msgs amd64 0.1.5-0xenial-20181128-003748-0800
404 Not Found [IP: 64.50.236.52 80]
Err:2 http://packages.ros.org/ros/ubuntu xenial/main amd64 ros-kinetic-variant-topic-tools amd64 0.1.5-0xenial-20190320-124933-0800
404 Not Found [IP: 64.50.236.52 80]
Err:3 http://packages.ros.org/ros/ubuntu xenial/main amd64 ros-kinetic-rqt-multiplot amd64 0.0.10-0xenial-20190320-141655-0800
404 Not Found [IP: 64.50.236.52 80]
E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-variant-msgs/ros-kinetic-variant-msgs_0.1.5-0xenial-20181128-003748-0800_amd64.deb 404 Not Found [IP: 64.50.236.52 80]
E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-variant-topic-tools/ros-kinetic-variant-topic-tools_0.1.5-0xenial-20190320-124933-0800_amd64.deb 404 Not Found [IP: 64.50.236.52 80]
E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-rqt-multiplot/ros-kinetic-rqt-multiplot_0.0.10-0xenial-20190320-141655-0800_amd64.deb 404 Not Found [IP: 64.50.236.52 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?`
How do I solve this?
rqt_plot
has a nice feature where the x-axis is the difference between message timestamp and program start time, so the x-axis timestamp display is in the order of hundreds or thousands, not on the scale of 1.5e+09
seconds.
Am I missing some configuration setting to allow this in rqt_multiplot
, as in the README? Or would that require diving into the code and submitting a PR to allow an option for this when using Message Receipt Time?
Plotting booleans and/or uint8 does not seem to work:
rostopic pub /bla std_msgs/UInt8 -r 10 -- 2
rqt_multiplot # plot /bla/receipt_time vs /bla/data
Thanks for the great plugin, it makes my everyday ROS life much easier :)
However, I'm often faced with plotting arrays as such, not over time, and there is no single plotter out there capable of this. So this might be a nice feature to add here.
I'd fancy a plotter, that can handle array types, e.g. float32[] data
-fields. The x-axis would be the index of the element, y-axis the value of the element. The whole plot would refresh with every new message.
Additionally nice to have:
PoseWithCovariance[] pose_list
pose.pose.position.x
pose.pose.position.y
over pose.pose.position.x
for each pose in the arrayFor our project we use rqt_multiplot on multiple machines connected to the same robot.
It would be great if we could load perspective files from a network drive so all developers have access to the same perspectives instead of everyone having local copies.
To see the rate of the message correctly, the rqt_multiplot node should be in the same nodelet manager or has NoTcpDelay, therefore it is useful to define whole node as a nodelet, which nodelet manager name could be set!
Hi,
I've been having this issue when trying plot multiple rows (more then 2 rows on 1920X1080) when the plot window resize and the lower plots are out of bound. Up to now I've always cycled the "toggle floating" feature to fix it but it's only momentary. Do you know any method to fix it?
Thanks
Alexandre
Hi,
I am trying to use multiplot to plot odom x vs odom y (which I have converted from lat/long to UTM). In the plot I want to be able to see the most recent point (or points). I tried to accomplish this by adding 2 curves, one with the data being a vector and a 2nd curve for the recent points. For the 2nd curve I have tried using circular buffer with low capacities and time frames of 1-5 secs. In the plot I can get the desired behavior for a few secs after which the 2nd plot keeps the full track. If I clear the plots I can get the behavior for a few secs again.
Is this the correct way of achieving the desired behavior or is there a better way?
Hi,
I've followed the instruction to build from source to try to use multiplot on Ubuntu 16.04 with Ros kinetic.
The cakin_make process was successful but unfortunately the plugin encounter a issue at launch.
If launch through rqt, rqt crash without warning.
If launch with rosrun rqt_multiplot rqt_multiplot, the following error is observed: Segmentation fault (core dumped)
Is their specific step/workaround to use this tool with Kinetic?
Thanks
Hi,
I am using rqt_multiplot to obtain some results for research and the file formats that can be exported are unfortunately quite limited. Support for the EPS file format would be ideal.
Kind Regards,
Sharif
Can you please include the license version in package.xml?
Currently
https://github.com/ANYbotics/rqt_multiplot_plugin/blob/master/rqt_multiplot/package.xml#L12
says only LGPL, while:
https://github.com/ANYbotics/rqt_multiplot_plugin/blob/master/LICENSE
says LGPL-3.0
superflore maps this to LGPL-2 in:
https://github.com/ros-infrastructure/superflore/blob/master/superflore/utils.py#L179
and LGPL-2 isn't valid SPDX Identifier in:
https://spdx.org/licenses/
and doesn't really match your license, so it would be better to declare the license correctly at the source - in package.xml.
First off, this is awesome— thanks for sharing!
When I try to build from source on Yosemite, I get the following:
Errors << rqt_multiplot:cmake /Users/mikepurvis/multiplot_ws/logs/rqt_multiplot/build.cmake.000.log
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
QWT_INCLUDE_DIRS
used as include directory in directory /Users/mikepurvis/multiplot_ws/src/rqt_multiplot_plugin/rqt_multiplot
used as include directory in directory /Users/mikepurvis/multiplot_ws/src/rqt_multiplot_plugin/rqt_multiplot
used as include directory in directory /Users/mikepurvis/multiplot_ws/src/rqt_multiplot_plugin/rqt_multiplot
This seems to be because qwt
is in an OSX "framework", so its headers can't be found given the current find_path
hints:
$ brew list qwt
/usr/local/Cellar/qwt/6.1.3/doc/html/ (1416 files)
/usr/local/Cellar/qwt/6.1.3/doc/man/ (144 files)
/usr/local/Cellar/qwt/6.1.3/features/ (3 files)
/usr/local/Cellar/qwt/6.1.3/lib/qt4/plugins/designer/libqwt_designer_plugin.dylib
/usr/local/Cellar/qwt/6.1.3/lib/qwt.framework/ (101 files)
I hacked around this to get a build:
@@ -28,6 +28,7 @@ find_path(
/usr/include/qwt-qt4
/usr/include/qwt
/usr/local/include/qwt
+ /usr/local/Cellar/qwt/6.1.3/lib/qwt.framework/Headers
)
But now I get a runtime issue on startup:
$ rosrun rqt_multiplot rqt_multiplot
Could not import "pyqt" bindings of qt_gui_cpp library - so C++ plugins will not be available:
Traceback (most recent call last):
File "/opt/ros/indigo/lib/python2.7/site-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in <module>
import libqt_gui_cpp_sip
ImportError: dlopen(/opt/ros/indigo/lib/python2.7/site-packages/qt_gui_cpp/libqt_gui_cpp_sip.so, 2): Library not loaded: @rpath/libclass_loader.dylib
Referenced from: /opt/ros/indigo/lib/python2.7/site-packages/qt_gui_cpp/libqt_gui_cpp_sip.so
Reason: image not found
But the missing library is definitely present:
$ ls -la /opt/ros/indigo/lib/libclass_loader.dylib
-rwxr-xr-x 1 mikepurvis wheel 138276 3 Aug 23:37 /opt/ros/indigo/lib/libclass_loader.dylib
Anyhow, I'm enjoying this on my Ubuntu VM; would love to get it working natively on OS X. Thanks again for the package and any suggestions!
Hi there!
Thanks for such great package. It is very useful.
I made a demo for visualizing MPU6050 IMU value from arduino.
welcome any suggestions.
tutorials: https://hackmd.io/s/SJeUHP3bg
source: https://github.com/Roboluv-TW/rqt_multiplot_plugin_ws
When using header/stamps or message receipt times for displaying data, the x-axis becomes impossible to parse in a meaningful way. Times are represented in unix-time that is to say on the order of 1,500,000,000 seconds and display as 1.52824e+09
. So it's really unintuitive to know how long a particular sequence is, let alone any given tick mark.
Ideally I'd to
rqt_plot
does), or1.52824e+09
→ 10:32:06 PM
)Am I missing something? I fiddled with all the settings I could find.
Thank you.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.