GSoC 2020: Plotting Tool for Ignition

Project: Plotting Tool for Ignition Simulator
Organization: Open Source Robotics Foundation
Mentors: Louise Poubel & Claire Wang
Student: Amr Elsersy

Working for Open Robotics as a Google Summer of Code 2020 Intern was an amazing experience that was full of learning and commitment in such a great working environment. I would like to thank my mentors @chapulina & @claireyywang for guiding and helping me throughout the project.

Project Overview

The project is about developing a Plotting visualization tool for Ignition Simulator,
so users can visualize various types of data coming from simulation, such as Simulation Physics Data and Transport Network Data, so users can plot components of entities during the simulation and also the transport msgs and its nested fields of the currently published transport topics.

Plotting UI

The Plotting tool is used by Interfacing with 2 Plugins:

  • Topic Viewer Plugin for Transport Plotting
  • Component Inspector Plugin for Physics Data Plotting

Developed Plugins

  • Ign-gazebo plugin for Physics Data Plotting
  • Ign-gui plugin for Plotting UI & Transport Plotting
  • Ign-gui plugin to Model Transport Topics

Physics Data Plotting

  • Ign-gazebo plugin that has access to simulation physics data
  • Users drag a specific component element via EntityTree & ComponentInspector Plugin and drop it into the plotting tool

PhysicsData

Topic Viewer Plugin

  • Topic Viewer Plugin is an ign-gui plugin that lists all currently published topics and model each topic’s structure, so user can access its fields and nested fields.
  • Plot-able fields are drag-able to be used in the Plotting tool
  • Update topics dynamically in real time

TopicViewer

Transport Plotting & UI

  • Transport Plotting Plugin is an ign-gui plugin that usess ignition transport library to handle transport plotting
  • Users drag the field of topic that they want to plot from the Topic Viewer plugin and drop it into the plotting tool to be plotted
  • Users can have Many charts and many plotting elemnts (fields or components) for each chart
  • Users can remove plotting elements at run time
  • Users can scroll over the plot view & zoom
  • Users can export each graph into a CSV Format

Plotting

CSV Export

Pull Requests

Used Technologies

  • C++
  • ign-gui / ign-gazebo / ign-transport
  • Qt & QML
  • gtest for unit testing

Future Work

  • Support repeated fields plotting
  • Export to PDF & SVG Formats

Conclusion

The Plotting tool is a visualization tool to plot simulation physics data & transport network data, used with Topic Viewer & Component Inspector Plugins in Ignition Simulator.

Finally, i want to thank Open Robotics and my mentors Louise and Claire for providing me such a wonderful experience

Thanks,
Amr Elsersy

9 Likes