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
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
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
CSV Export
Pull Requests
- Plotting UI & Transport Plotting, Merged
- Topic Viewer Plugin, Merged
- Physics Data Plotting In Review
- Improving Plotting Performance In Review
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