MCAP Support for LabPlot
KDE SOK Proposal
Project Abstract
Add support for the MCAP data format to LabPlot.
Proposal
MCAP is described as "a modular container format and logging library for pub/sub messages with arbitrary message serialization." MCAP is the new default data logging format for ROS2.[1] With the increased popularity of ROS 2 [2], a broader adoption and an increased number of users are expected, especially in the academic space. Adding support for MCAP in LabPlot will expand the potential user group of LabPlot and make its excellent functionality accessible to a wider audience.
MCAP files offer an excellent way to store self-contained data. The addition of the capability to perform high-quality data visualization, analysis, and statistics on recorded data will assist scientists and researchers in the field of robotics in gaining valuable insights into their data.
To add this functionality to LabPlot, the MCAP C++ library needs to be included in the project. This will enable the loading of recorded data into the internal representation of LabPlot. To test the changes, publicly available datasets like NuScenes will be loaded and visualized in the LabPlot application.
The implementation will occur incrementally. As a first step, support for JSON-encoded data stored in an MCAP file will be implemented. Other serialization formats like Protobufs or Flatbuffers will be added once the general loading of MCAP files is available. The initial scope will be limited to numerical data and can be extended to more complex data types.
To document the changes, a blog post about the required work will be created. The ROS forum might be a suitable platform to inform people about the added functionality. Foxglove, the creator of MCAP, might be open to a blog post on their blog, as they have done with other projects using MCAP before[3].
[1] https://foxglove.dev/blog/mcap-as-the-ros2-default-bag-format
[2] https://www.therobotreport.com/2022-ros-2-metrics-report/
[3] https://foxglove.dev/blog/plotjuggler-adds-support-for-mcap
Timeline
- Understand the LabPlot code base.
- Implement needed functionality to support MCAP files.
- Verify functionality on a test MCAP file encoded with JSON format on numerical data.
- Document changes and present an example use case.
- Spread the word on platforms like ROS2 Forum, Foxglove Blog, etc.
A more detailed timeline will be provided once the complexity is understood.
Foreseen Challenges
Adding support for different serialization formats besides JSON might be challenging since it might require additional dependencies. Also, finding a way to filter for supported data types might be challenging since MCAP can potentially store images/video and other binary data.
References / Relevant Background Info
My name is Raphael, and I am a Software Engineer working in the field of robotics. I have experience in developing software for different domains like logistics, agriculture, and biotechnology. The main languages I use are Python and C++. My current focus is on Computer Vision and Machine Learning, where I often visualize data from different systems. Linux is my main operating system, and I enjoy working with free and open-source software in every possible aspect. With my background and interest in contributing to open-source projects, I believe I would be a great fit for an SOK project.
My Github account.