No description
Find a file
2022-10-28 22:37:48 +09:00
bw_interop Fixes in message tree calculations, plots for the paper, started work on BW plots for the paper 2022-10-28 22:37:48 +09:00
clang_interop Hierarchical latency graph, bugfixes, renamed types.py to not interfere with other python packages. 2022-08-09 18:36:40 +02:00
latency_graph De-duplicate dependency tree calculations and data structures, de-clutter notebook 2022-10-13 19:13:39 +09:00
matching Fix outputs, fix AST crash 2022-09-16 16:38:23 +02:00
message_tree Fixes in message tree calculations, plots for the paper, started work on BW plots for the paper 2022-10-28 22:37:48 +09:00
misc Env var parser now uses eval(); corrected papermill titles 2022-09-16 19:31:50 +02:00
tracing_interop De-duplicate dependency tree calculations and data structures, de-clutter notebook 2022-10-13 19:13:39 +09:00
.gitignore Git-ignore pickle files 2022-05-31 16:04:18 +02:00
README.md Fixed crash when BW_ENABLED=False, user-friendly README.md 2022-09-14 14:08:47 +02:00
requirements.txt Update requirements.txt 2022-09-19 15:59:50 +02:00
trace-analysis.ipynb Fixes in message tree calculations, plots for the paper, started work on BW plots for the paper 2022-10-28 22:37:48 +09:00

MA Autoware Trace Analysis

Automatically extract data dependencies and end-to-end (E2E) latencies from ROS2 trace data.

Prerequisites

Installation

# Make sure you are running Python 3.10 and the corresponding pip:
python3.10 -V
pip3.10 -V

pip3.10 install -r requirements.txt

Make sure that ROS2 Tracing and Tracetools Analysis were compiled with colcon build [...] --symlink-install [...]. Without --symlink-install, the build folder structure will be incorrect and the libraries required by this tool cannot be located.

Usage

The trace_analysis.ipynb notebook is the entry point for users. Configure the notebook according to the comments in the user settings cell. Settings can either be changed in the notebook or via environment variables:

# In the notebook (User Settings cell near the top):
TR_PATH = "path/to/trace/dir"
E2E_ENABLED = True
...
# In the shell of your choice (choose Bash!):
# Each setting is named the same as in the notebook but prefixed by "ANA_NB_".
ANA_NB_TR_PATH="path/to/trace/dir"
ANA_NB_E2E_ENABLED="True"

You can run the notebook via the "Run All" command in Jupyter or you can execute it headless from the command line:

jupyter nbconvert --to notebook --execute trace-analysis.ipynb

nbconvert can also be called from Python directly, read more info on nbconvert here.

The output files are found in the configured output dir (default: out/). Inputs are processed and cached in cache/.