Log Management

This chapter will give you an understanding of how and where logs are generated at runtime, and what you can do with them. Data logging is a very important aspect of robotic system development, and Rock does have your back on the subject.

In particular, we will go through the following subjects:

This last point is, in the end, the gateway for further processing in more common languages for data oriented tasks (e.g. Python, R, …). The basic tools presented in this last section make it easy to extract relevant data from the generated datasets and export it for further processing. Said processing can be automated (does not have to be part of a Jupyter notebook).

Within a Rock system based on Syskit, the log management functionality is implemented by the syskit-log package. It is defined by the rock.core package set, but is not included by default within the rock.core metapackage.

To add it to your workspace, add tools/syskit-log to your manifest, or in one of your system's metapackages, e.g.

manifest:
- ...
- tools/syskit-log

Additionally, if you intend to use Jupyter for interactive log plotting and analysis, add the rock.jupyter package set in your manifest, under the package_sets section. This will configure the jupyter location and add rock.jupyter.osdeps to your manifest:

package_sets:
   - ...
   - github: rock-core/rock.jupyter-package_set
   - ...

manifest:
   - ...
   - tools/syskit-log
   - rock.jupyter.osdeps