Ignition Marker improvements for LRAUV
Given that all of us (@arjo129 @chapulina and I) have been seeing a big need for Ignition Markers to be more usable for debugging purposes, I'm opening this ticket to keep track of specific features we need in this repo (as opposed to opening separate issues upstream, because there are so many things to make it parallel to RViz Marker. We need to focus on a few for now).
Feel free to add.
- [x] Per-vertex coloring for Marker arrays.
Why: Performance for visualizing science data. See osrf/lrauv#133. Otherwise we can only visualize a very small number of markers without significant lag, ~400 on my Dell XPS 15 9570.
Implementation: Refer to RViz Markers implementation, which has the colors specified as a vector for vector types including
POINTS,LINE_LISTS, etc. Ignition differs in that the material field is very large, and a vector of that creates a lot of overhead. Need design decision. - [ ] Arrows Why: To debug force vectors etc. I've run into this in our GSoC 2020 project with Martiño too. It's a real limitation. Current workaround: One way is to use POINTS and LINE_LISTS in combination. Drawback is you won't have per-vertex coloring - see bullet above. Implementation: Refer to RViz Markers implementation for parameters to specify sizes for different parts of the arrow.
- [ ] (Optional bonus) Marker textures Why: Continuous gradient color visualization with more resemblance to typical marine science visualizations, as opposed to discrete points visualization. Implementation: Marker textures have recently been added to RViz2 https://github.com/ros2/rviz/pull/719 Example usage: https://github.com/gbalke/rviz_shader_tester
Related upstream issues:
- https://github.com/ignitionrobotics/ign-gazebo/issues/1156
- https://github.com/ignitionrobotics/ign-gazebo/issues/1155
Does #1156 include per-vertex coloring? Seems like it does not. It seems specific to a plugin and not for generic Marker arrays. Should per-vertex coloring be a separate ticket or are we not ticketing that upstream?
Also I've opened ignitionrobotics/ign-gui#307 for some changes to GUI. Its on a backburner as I have got to fix dynamics related issues.
Does #1156 include per-vertex coloring?
Good question, I think it's necessary, otherwise it will be tough to represent different environment data values
I looked a bit into adding arrow markers because I thought it wouldn't take long, and also because I wanted to use axis markers to visualize multiple frames of reference (in the context of #81). It turned out that we may need some deep refactoring in ign-rendering to do it, see https://github.com/ignitionrobotics/ign-rendering/issues/493. So I think the easier route may be to publish separate markers with a cylinder and a cone that combined make an arrow :confused:
@arjo129 am I right to say this feature request has been captured upstream?