No description
Find a file
Maximilian Schmeller 4ddc69562f More documentation
2022-12-29 15:09:59 +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 Allow for better TF2 insight and analysis [WIP], write more outputs to the specified out dir and not to the project dir, add E2E_EXACT_PATH setting to speed up execution for known paths 2022-12-25 20:47:56 +09:00
matching More documentation 2022-12-29 15:09:59 +09:00
message_tree More documentation 2022-12-29 15:09:59 +09:00
misc Document misc/utils.py 2022-12-28 14:24:20 +09:00
tracing_interop Document tracing_interop/utils.py 2022-12-28 14:12:24 +09:00
.gitignore Properly setup .gitignore 2022-12-25 20:35:31 +09:00
batch_analyze.py Change path to measurements folder 2022-12-28 12:35:38 +09:00
README.md Improved documentation [WIP], cleaned up temporary functions 2022-11-07 17:46:09 +09:00
requirements.txt Update requirements.txt 2022-09-19 15:59:50 +02:00
trace-analysis.ipynb Allow for better TF2 insight and analysis [WIP], write more outputs to the specified out dir and not to the project dir, add E2E_EXACT_PATH setting to speed up execution for known paths 2022-12-25 20:47:56 +09:00

MA Autoware Trace Analysis

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

Prerequisites

Requirements for Optional Features

  • ros2_internal_dependency_analyzer for finding intra-node dependencies via static analysis, which can then be utilized by this tool
  • ros2 multitopic bw for recording message sizes which can then be processed by this tool

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_".
# For strings, quotes have to be included IN THE VARIABLE VALUE, i.e. double quotation "'...'" 
# has to be used in most cases
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

The notebook also supports invocation via Papermill.

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