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

List of plugins / features needed for Rviz2 parity #54

Closed
SteveMacenski opened this issue Sep 25, 2020 · 11 comments
Closed

List of plugins / features needed for Rviz2 parity #54

SteveMacenski opened this issue Sep 25, 2020 · 11 comments
Assignees

Comments

@SteveMacenski
Copy link

I think this would make a good reference to know what's missing to potentially work through to make ign-rviz feature complete with Rviz.

@chapulina
Copy link
Contributor

For reference, here's RViz2's features:

https://github.com/ros2/rviz/

And ign-rviz's features:

https://github.com/ignitionrobotics/ign-rviz/wiki

@chapulina
Copy link
Contributor

@Sarath18 , what do you think of creating a wiki page with this info?

@Sarath18
Copy link
Collaborator

Sarath18 commented Oct 5, 2020

Sure, I'll create a new page for this. I'll try to include the list of features that are missing, and some potential new features that can be integrated in the long run. I start working on some of the features to reduce the gap.

@Sarath18
Copy link
Collaborator

Sarath18 commented Oct 6, 2020

I have created a new page for Features needed for RViz parity in the wiki.

@chapulina @SteveMacenski @ahcorde can you please review it whenever possible?

@SteveMacenski
Copy link
Author

SteveMacenski commented Oct 6, 2020

I don't see...

  • Camera
  • Depth cloud
  • Path
  • Effort

For panels, I think there needs to be that default selector panel (the sidebar thing we use to configure / enable the streams)

All the rest looks complete to me. Any other third party ones we want to at this juncture suck into ign-rviz or new features we want to add? Now's the time to dream big! Perhaps... (just spit balling)

You also mentioned plotting

@chapulina
Copy link
Contributor

Thanks, @Sarath18 !

We can either integrate them into the Scene3D plugin or create a custom scene plugin like GzScene3D.

About this, I created an issue here: gazebosim/gz-gui#137

@Sarath18
Copy link
Collaborator

Sarath18 commented Oct 6, 2020

Thank you all for the review :)

I don't see...

  • Camera
  • Depth cloud
  • Path
  • Effort

I have added these plugins and their status to the list.

For panels, I think there needs to be that default selector panel (the sidebar thing we use to configure / enable the streams)

If I understand this correctly, we do have the display plugin config option available in the right sidebar and the plugins can be added by topic/type using the drawer menu. This can be seen here. Please correct me if I am wrong.

IMU

+1. We can add new features to IMU plugin like gravity compensation and instead of just visualizing the acceleration values from IMU, we can even visualization roll, pitch, yaw values and other data. These were not part of IMU visualization plugin.

DiagnosticStatus and BatteryState

This is a good idea. There are GUI plugins. If we are going ahead with this, we should definitely discuss the UI/UX of the plugin before proceeding with the development.

Vector3 that could just be aliased over Point.

I agree, but are we going ahead with visualizing non-stamped data?

NavSatFix

I want to visualize this data but I am not sure how to proceed. There are 2 ways that I can think of

  1. Convert the NavSat data to the local frame using UTM transform and the visualize it
  2. Add maps support (like Google Maps, OSM, Apple Maps) and display a maker with the NavSat data.

I had plans to support the following plugins:

  • RawTopicData: This plugin is basically is a GUI tool for displaying ros2 topic echo /topic. This was an interesting feature in webviz. The only thing to figure out here is how to get the message type during runtime in C++. This can be easily done in python.
  • Plotting: This will be similar to facontidavide/PlotJuggler. The transport plotting looks absolutely amazing and I would like to integrate it to visualize topic data.
  • RobotSteering/Teleop plugin. This will be similar to rqt robot steering but the user can switch between slider and joystick. The joystick really interests me because ign-gui is targeted toward touch displays as well. So the user can load up an image display plugin and control the bot using a joystick(s).

Now's the time to dream big!

I agree with you and we can support these visualization/plugins natively in ign-rviz.

I will add all the aforementioned plugin ideas under a new heading Stretch Goals on the feature list page. If you disagree with any of the plugins, we can have a discussion before proceeding.

@Sarath18
Copy link
Collaborator

Sarath18 commented Oct 6, 2020

About this, I created an issue here: gazebosim/gz-gui#137

Awesome! That is a great idea. Maybe we can do the same thing with GzGrid3D and Grid3D plugin.

@Sarath18
Copy link
Collaborator

Sarath18 commented Oct 6, 2020

One more thing, are with going ahead with PointCloud (old version) visualization? Asking this because ign-rviz targets foxy & above, and as far as I know, PointCloud is deprecated from foxy, in favor of PointCloud2.

@SteveMacenski
Copy link
Author

For panels, I think there needs to be that default selector panel (the sidebar thing we use to configure / enable the streams)

Maybe I haven't played enough with this yet, but does that panel have all of the visualization displays active that you can change params on in a compact way? Perhaps this is more of an improvement item than a new development thing.

The IMU display shouldn't be computing any new values, just visualizing what comes in. The RPY/acceleration vector seems reasonable. I'm not sure if it would be possible to cleanly display angular velocities.

Many cases of GPS will use the nav sat transform to provide a TF tree from UTM to map frame, so you should be able to transform them if that's provided. I don't think there's any other special considerations (not different than any other sensor feed, needs a valid TF to show in map frame)

There is a "steering" demo rviz plugin, though I'm not sure how much use it practically gets.

I wouldn't bother with PointCloud(1)'s for that reason.

@chapulina
Copy link
Contributor

The list has been added, so I'm closing this. Thanks @Sarath18 !

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

3 participants