PlotJuggler icon indicating copy to clipboard operation
PlotJuggler copied to clipboard

Command line flags instead of pop-up windows on startup from layout file

Open lucasw opened this issue 4 years ago • 10 comments

I'm starting plotjuggler from a launch file with a layout file and I'd like it to jump right into plotting my ros topics without having to click past anything.

Start the previously used streaming plugin?

 ROS_Topic_Streamer 

Want to be able to skip past this by automatically entering 'yes'.

Select ROS messages
...

Skip this with equivalent 'OK' getting entered.

One or more timeseries in the layout haven't been loaded yet
What do you want to do?

Automatically create empty curves- removing the curves seems contradictory to loading the layout in the first place.

lucasw avatar Sep 12 '19 18:09 lucasw

I will think about it... I don't want this to become a source of hard to debug errors....

facontidavide avatar Oct 18 '19 08:10 facontidavide

Definitely agree with @lucasw, it's very annoying having to use mouse input every time you launch. Was this issue ever addressed? I'd be happy to look into doing a PR.

ingramator avatar Sep 14 '20 07:09 ingramator

I also need this. When launching plotjuggler with an existing layout/configuration xml, it should come up quietly together with all other launched nodes, without needing these distracting mouse clicks.

normanhendrich avatar Oct 23 '20 19:10 normanhendrich

I also would appreciate this feature.

valschmidt avatar Dec 01 '20 01:12 valschmidt

This feature is so basic yet so crucial for many launch files.

I would also appreciate it.

1highmax avatar Jul 20 '21 14:07 1highmax

Hi, any chance this would be addressed? It could be a very useful options for ROS users.

elgarbe avatar Oct 29 '21 12:10 elgarbe

Relevant link: https://github.com/facontidavide/PlotJuggler/discussions/520

facontidavide avatar Oct 30 '21 13:10 facontidavide

Hello and thank you for plotjuggler's amazingness

I understand features take lots of time to implement, just adding to the voices of users above (to nudge towards -> "It has a considerable impact on a large percentage of my users.")

As a ros user, the feature to save the input topics in the layout file would:

  • avoid clicks (as above)
  • avoid forgetting which topics are required (always getting the 'missing timeseries' error message when too many topics to just 'select all')
  • big use case for automation -> make it possible to launch plotjuggler in roslaunch, the same way that rviz can be roslaunched with it's config/layout and visualizations immediately start updating.

Thanks a lot for your consideration

ljburtz avatar Sep 06 '22 02:09 ljburtz

Hello, I attempted to add the functionality to automate starting PlotJuggler skipping dialogs that need human clicks. I believe it's unlikely to be merged given I used environment variables to allow for this, however, if building from source is okay for you, it is a possibility now!

The environment variables introduced are:

  • PLOTJUGGLER_ACCEPT_PREVIOUSLY_USED_STREAMING_PLUGIN=1 to skip the dialog 'Start the previously used streaming plugin?'
  • PLOTJUGGLER_CHOOSE_EMPTY_PLACEHOLDERS_ON_MISSING_TIMESERIES=1 to skip the dialog 'One or more timeseries in the layout haven't been loaded yet, What do you want to do?'
  • PLOTJUGGLER_ACCEPT_SELECT_ROS_TOPIC_DIALOG=1 to skip the ROS topic selection dialog.

And the PRs are: https://github.com/facontidavide/PlotJuggler/pull/811 https://github.com/PlotJuggler/plotjuggler-ros-plugins/pull/64

And a short video of it working (using ROS1 but it is implemented also on ROS_space_2)

https://user-images.githubusercontent.com/1721716/229349221-ad5e7560-470b-4592-b529-3f86ed5303bc.mp4

awesomebytes avatar Apr 02 '23 11:04 awesomebytes

My example commandline looked like:

PLOTJUGGLER_ACCEPT_PREVIOUSLY_USED_STREAMING_PLUGIN=1 PLOTJUGGLER_CHOOSE_EMPTY_PLACEHOLDERS_ON_MISSING_TIMESERIES=1 PLOTJUGGLER_ACCEPT_SELECT_ROS_TOPIC_DIALOG=1 rosrun plotjuggler plotjuggler -n -l /home/sam/my_layout_for_streaming.xml

Which can also be done from a launchfile using the env tags for sure.

To try it:

mkdir -p ~/ws_plotjuggler/src
cd ~/ws_plotjuggler/src
# Choose ros1 or ros2 depending on your required ROS version
git clone -b ros1 https://github.com/PlotJuggler/plotjuggler_msgs.git
git clone -b feature_skip_dialogs_issue_201 https://github.com/awesomebytes/PlotJuggler.git
git clone -b feature_skip_dialogs_issue_201 https://github.com/awesomebytes/plotjuggler-ros-plugins.git
cd ..
# colcon build or catkin build
catkin build
source install/setup.bash
# rosrun/ros2 run plotjuggler

awesomebytes avatar Apr 02 '23 11:04 awesomebytes