ros-perception / vision_msgs

Algorithm-agnostic computer vision message types for ROS.
Apache License 2.0
149 stars 72 forks source link

ROS 2 RVIZ plugin #72

Closed NovoG93 closed 1 year ago

NovoG93 commented 2 years ago

Hey guys, just wanted to share my RVIZ2 plugin to visiualize Detection3dArray msgs. At the moment only for foxy as the msg definition changed afterwards. Will update it as described in the readme when I find time.

See here: https://github.com/NovoG93/vision_msgs_rviz_plugins

Open for any suggestions if you have some.

Best

NovoG93 commented 1 year ago

Hey guys, I ported my plugin to humble.

See here: https://github.com/NovoG93/vision_msgs_rviz_plugins

Open for any suggestions if you have some.

Best

NovoG93 commented 1 year ago

Hey guys, I added support to show the detection score and for vision_msgs/Detection3D. For a full list of supported features see: https://github.com/NovoG93/vision_msgs_rviz_plugins Overview Open for any suggestions if you have some.

Best

SteveMacenski commented 1 year ago

Wow looks great!

NovoG93 commented 1 year ago

Hey everyone,

I added support for BoundingBox3D and BoundingBox3DArray msgs, for a full list of supported features see: https://github.com/NovoG93/vision_msgs_rviz_plugins: Gif Open for any suggestions if you have some.

Best

mintar commented 1 year ago

Looks nice!

Since you asked, the only feedback that I have is that you seem to have hardcoded some class id to semantic names values ("car: orange, person: blue, cyclist: yellow, motorcycle: purple, other: grey"). These are specific to your application and probably not very useful in general. However, as there is no generic way to look up the class id to class name mapping, I don't have a better idea. :)

NovoG93 commented 1 year ago

@mintar I will look into ways of changing the color maps online. Maybe by providing the path to a yaml file.

SteveMacenski commented 1 year ago

Some defaults probably makes sense, but also being able to change that would be nice if that profile is provided.

Let me know if you're open to contributing this here! I took a quick glance through the code and it looks pretty clean to me!

NovoG93 commented 1 year ago

@mintar I added the option to change the color mapping based on a yaml file. Update with yaml config

@SteveMacenski, would love to do that. Are you thinking about a submodule or should I open a PR?

SteveMacenski commented 1 year ago

A PR so if I run bloom, this can be released too!

SteveMacenski commented 1 year ago

@NovoG93 I left a note on https://github.com/ros-perception/vision_msgs/pull/79#issuecomment-1421429602 -- there's an issue with the rviz plugins compiling in isolation.

NovoG93 commented 1 year ago

@SteveMacenski will the rviz plugins also be available via the package manager (e.g. apt)?

SteveMacenski commented 1 year ago

I tried to run a release last week but ran into an issue with bloom since I don't have push access to the release repository for this package. @Kukanani can you run a release? I already tagged it, bloom just needs to be run

NovoG93 commented 1 year ago

I see, thanks for the update

Kukanani commented 1 year ago

Yes, I'll bloom. Hopefully can get to it this weekend.

We should reach out to Tully or someone else who can grant release repo access for others. Or is it because it's the older Foxy release, and it still points to the old release repo?

SteveMacenski commented 1 year ago

I was given access over the weekend - releasing to rolling and humble now

NovoG93 commented 1 year ago

Although I can see that the vision_msgs_rviz_plugins are built on the master in the jenkins build here and that it has been relesed here and here I can't seem to install it via apt.

Inside the docker container (osrf/ros:humble-desktop) I ran rosdep update && apt update and searched with apt-cache search but couldn't find the plugins. Does it simply take a little longer to be fully deployed?

output of apt-cach search ros-humble-vision-msgs:

root@c1f18678f1bd:/# apt-cache search ros-humble-vision-msgs
ros-humble-vision-msgs - Messages for interfacing with various computer vision pipelines, such as object detectors.
ros-humble-vision-msgs-dbgsym - debug symbols for ros-humble-vision-msgs
ros-humble-vision-msgs-layers - Collection of RQt Image Overlay Plugins for Vision Msgs
ros-humble-vision-msgs-layers-dbgsym - debug symbols for ros-humble-vision-msgs-layers

output of apt-cache search rviz | grep plugin:

root@c1f18678f1bd:/# apt-cache search rviz | grep plugin
ros-humble-grid-map-rviz-plugin - RViz plugin for displaying grid map messages.
ros-humble-grid-map-rviz-plugin-dbgsym - debug symbols for ros-humble-grid-map-rviz-plugin
ros-humble-nav2-rviz-plugins - Navigation 2 plugins for rviz
ros-humble-nav2-rviz-plugins-dbgsym - debug symbols for ros-humble-nav2-rviz-plugins
ros-humble-octomap-rviz-plugins - A set of plugins for displaying occupancy information decoded from binary octomap messages.
ros-humble-octomap-rviz-plugins-dbgsym - debug symbols for ros-humble-octomap-rviz-plugins
ros-humble-rmf-visualization-rviz2-plugins - A package containing RViz2 plugins for RMF
ros-humble-rmf-visualization-rviz2-plugins-dbgsym - debug symbols for ros-humble-rmf-visualization-rviz2-plugins
ros-humble-rviz-2d-overlay-plugins - RViz2 plugin for 2D overlays in the 3D view.
ros-humble-rviz-2d-overlay-plugins-dbgsym - debug symbols for ros-humble-rviz-2d-overlay-plugins
ros-humble-rviz-common - Common rviz API, used by rviz plugins and applications.
ros-humble-rviz-default-plugins - Several default plugins for rviz to cover the basic functionality.
ros-humble-rviz-default-plugins-dbgsym - debug symbols for ros-humble-rviz-default-plugins
ros-humble-rviz-imu-plugin - RVIZ plugin for IMU visualization
ros-humble-rviz-imu-plugin-dbgsym - debug symbols for ros-humble-rviz-imu-plugin
ros-humble-rviz-rendering-tests - Example plugin for RViz - documents and tests RViz plugin development
ros-rolling-octomap-rviz-plugins - A set of plugins for displaying occupancy information decoded from binary octomap messages.
ros-rolling-octomap-rviz-plugins-dbgsym - debug symbols for ros-rolling-octomap-rviz-plugins
ros-rolling-rmf-visualization-rviz2-plugins - A package containing RViz2 plugins for RMF
ros-rolling-rmf-visualization-rviz2-plugins-dbgsym - debug symbols for ros-rolling-rmf-visualization-rviz2-plugins
ros-rolling-rviz-2d-overlay-plugins - RViz2 plugin for 2D overlays in the 3D view.
ros-rolling-rviz-2d-overlay-plugins-dbgsym - debug symbols for ros-rolling-rviz-2d-overlay-plugins
ros-rolling-rviz-common - Common rviz API, used by rviz plugins and applications.
ros-rolling-rviz-default-plugins - Several default plugins for rviz to cover the basic functionality.
ros-rolling-rviz-default-plugins-dbgsym - debug symbols for ros-rolling-rviz-default-plugins
ros-rolling-rviz-imu-plugin - RVIZ plugin for IMU visualization
ros-rolling-rviz-imu-plugin-dbgsym - debug symbols for ros-rolling-rviz-imu-plugin
ros-rolling-rviz-rendering-tests - Example plugin for RViz - documents and tests RViz plugin development
Kukanani commented 1 year ago

There is another step to go from having the ROS packages building in Jenkins to having them available in the public repositories. This is called a Release Sync and it happens every few months. Syncs are announced on the ROS Discourse by the OSRF team.

NovoG93 commented 1 year ago

Thank you for explaining that for me!