Skip to content

Features needed for RViz parity

Sarathkrishnan Ramesh edited this page Oct 27, 2020 · 7 revisions

The following is the list of plugins/features that compare ign-rviz with RViz.

Display Plugins

Display Plugins Status
Axes ✔️
Camera
Depth Cloud
Effort
Fluid Pressure
Grid ✔️
Grid Cells
Illuminance
IMU
Image ✔️
Interactive Marker
Laser Scan ✔️
Map
Marker ✔️
Marker Array ✔️
Path ✔️
Odometry
PointCloud
PointCloud 2
Point ✔️
Polygon ✔️
Pose ✔️
Pose Array ✔️
Pose With Covariance
Range
Relative Humidity
Robot Model ✔️
Temperature
TF ✔️
Wrench

Display plugins that can be developed using the current API:

  • Add namespace, frame locking, and lifetime support for Markers
  • Odometry
  • Pose with covariance
  • Update/create custom Grid3D plugin to configure grid settings and add frame locking.
  • Add color transformation to LaserScan visualization plugin

Related work:

  • PointCloud and Billboard rendering support in ign-rendering. Required by
    • PointCloud/PointCloud2
    • Grid Cells
    • Fluid Pressure
    • Illuminance
    • Map
    • Relative Humidity
    • Temprature
  • Sonar/Range sensor plugin in ign-sensors and its visualization in ign-rendering (similar to GPU ray sensor and LidarVisual).
  • Wrench sensor data visualization in ign-rendering.

View Controller

View controller Status
Orbit ✔️
XY Orbit
First Person
Third Person Follower
Top Down Orthographic
  • ign-gui Scene3D only supports OrbitViewController. We can either develop a custom Scene3D plugin like in ign-gazebo or create a plugin based view controller system to switch the camera controller dynamically.
  • Add support for missing camera controllers to ign-rendering.

Tools

Tools Status
Move Camera ✔️
Focus Camera
Measure
Select
2D Nav
Publish Point
Initial Pose
Interact

A lot of these tools require interaction with the scene which is not available in the raw Scene3D plugin provided by ign-gui. We can either integrate them into the Scene3D plugin or create a custom scene plugin like GzScene3D.

Panels

There are no well-defined panels in ign-rviz. The main application consists of the Scene3D plugin along with all the plugin config in the right split. The drawer menu allows the user to add new visualization plugins by type or by topic.

  • Additional panels can be loaded as floating plugins resemble top and bottom panels in RViz. This will be similar to how World Status and Transform Control plugins are used in the ignition gazebo.
  • Add config save and load option.
  • About section

Stretch Goals

  • diagnostic_msgs/msg/DiagnosticStatus Diagnostic panel to show info above a warning to user
  • sensor_msgs/msg/BatteryState battery status
  • sensor_msgs/msg/NavSatFix GPS
  • Radar data visualization on completion of the standardization of radar_msgs
  • Particle filter
  • RawTopicData: This plugin is basically is a GUI tool for displaying message data (like ros2 topic echo /topic), inspired by webviz.
  • Plotting: This will be similar to facontidavide/PlotJuggler. Developed using ign-gui transport plotting.
  • RobotSteering/Teleop plugin: This will be similar to rqt robot steering but the user can switch between slider and joystick to publish command velocities.