Skip to content

Software architecture#

This section explains an overview of software architecture.

architecture

CARET is divided into three phases; recording phase, configuration phase and analyzing phase.

Recording Phase#

In the recording phase, CARET records system execution data from tracepoints.

In addition to the tracepoints built into ROS2, CARET adds tracepoints by several methods; CARET_trace CARET_rclcpp and TILDE. For flexibility in adding tracepoints, tracepoints are added by hooks as possible. Only if it is not possible to add tracepoints by hooks, tracepoints are added by other methods as a supplementary method.

All recorded data is stored as TraceData and used in the analyzing phase.

CARET utilizes LTTng as a trace mechanism.

In CARET, packages related to recording phase are followings.

See also

Configuration Phase#

In the configuration phase, CARET needs configurations to calculate latency.

Some of the configurations can be defined via the Python API. Configuration can be saved as a YAML file (Architecture file) and edited. The architecture file is used repeatedly in the analyzing phase.

In CARET, packages related to configuration phase are followings.

See also

Analyzing Phase#

In analyzing phase, CARET analyzes trace data to provide system execution information.

CARET_analyze provides a Python class that can access a variety of time series information. Developers can get the necessary information for evaluation from this class and perform evaluation according to their objectives.

CARET_analyze also provides visualizations for the evaluation of Jupyter.

In CARET, packages related to configuration phase are followings.

See also

ROS 2 Packages#

The followings are CARET-related packages.

Package Role Repository
CARET_trace Add trace points via hooks. Control tracepoints. https://github.com/tier4/CARET_trace/
CARET_rclcpp Add trace points by fork https://github.com/tier4/rclcpp
ros2caret Provide CARET CLI https://github.com/tier4/ros2caret/
CARET_analyze Analyze trace data https://github.com/tier4/CARET_analyze/
CARET_analyze_cpp_impl Accelerate CARET_analyze https://github.com/tier4/CARET_analyze_cpp_impl/
TILDE Add tracepoints within the system to be measure https://github.com/tier4/TILDE