No description
Find a file
2022-12-25 20:39:44 +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 Improved documentation [WIP], cleaned up temporary functions 2022-11-07 17:46:09 +09:00
misc Env var parser now uses eval(); corrected papermill titles 2022-09-16 19:31:50 +02:00
tracing_interop Support colum renaming and make argument names clearer in df_to_type_list 2022-12-25 20:39:44 +09:00
.gitignore Properly setup .gitignore 2022-12-25 20:35:31 +09:00
batch_analyze.bash Add a helper script for batch execution on multiple simulation runs 2022-12-25 20:36:15 +09:00
make-plots.ipynb Add a notebook that plots comparisons of multiple simulation runs [WIP] 2022-12-25 20:37:10 +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 Removed NB outputs 2022-11-07 17:46:44 +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/.