DC (Data Collection) framework release

Hi ROS2 community!

I would like to share with you a project I have been working on recently. After using ROS for many years it is time to #giveback.

The DC (Data Collection) project aims at integrating data collection pipelines into ROS 2. The goal is to integrate data collection pipelines with existing APIs to enable data analytics, rather than live monitoring, which already has excellent tools available. As companies increasingly turn to autonomous robots, the ability to understand and improve operations for any type of machine in any environment has become crucial. This involves mostly pick and drop and inspection operations. This framework aims at helping collecting, validating (through JSON schemas) and sending reliably the data to create such APIs and dashboards.

DC uses a modular approach, based on pluginlib and greatly inspired by Nav2 for its architecture. Pluginlib is used to configure which measurements are collected and where the data goes. Measurements and destinations are pluginlib plugins. In addition to pluginlib, most plugins use Fluent bit in the backend: Fluent Bit is a super fast, lightweight, and highly scalable logging and metrics processor and forwarder. It is the preferred choice for cloud and containerized environments. Developed and interfaced in C, it has already many features we directly can use, especially: high performance, reliability and data integrity (backpressure handling and data buffering in memory and filesystem).

It is hassle free, you can start collecting data by using pre-defined measurements and destinations. All that needs to be written is a yaml configuration file.

I would like this project to be easy enough to use for roboticists who want to collect data to pass on to their backend developer colleagues and at the same time easy enough for the backend developers to test pipelines without having to disturb their roboticists colleague. And finally easy enough so they can understand each other.

Checkout the code and documentation which contains information about how things work and demos to test pipelines.

Feedback is welcome :slight_smile:

Repository: https://github.com/Minipada/ros2_data_collection
Documentation: https://minipada.github.io/ros2_data_collection/
License: MPL-2.0