CARET (Chain-Aware ROS Evaluation Tool) is one of performance analysis tool dedicated with ROS 2 applications. It is able to measure not only callback latency and communication latency, but also path latency, in other words, chain of node or callback. As additional tracepoints are introduced by function hook, tracing resolution is improved.
If you find CARET is useful in your research, please consider citing:
-
T. Kuboichi, A. Hasegawa, B. Peng, K. Miura, K. Funaoka, S. Kato, and T. Azumi, "CARET: Chain-Aware ROS 2 Evaluation Tool," IEEE international conference on Embedded and Ubiquitous Computing (EUC), 2022.
-
B. Peng, A. Hasegawa, and T. Azumi, "Scheduling Performance Evaluation Framework for ROS 2 Applications," IEEE International Conference on Embedded Software and Systems (ICESS), 2022.
BibTeX
@inproceedings{CARET,
title={{CARET}: Chain-{Aware} {ROS} 2 {Evaluation Tool}},
author={Kuboichi, Takahisa and Hasegawa, Atsushi and Peng, Bo and Miura, Keita and Funaoka, Kenji and Kato, Shinpei and Azumi, Takuya},
booktitle={Proceedings of IEEE international conference on embedded and ubiquitous computing (EUC)},
year={2022}}
@inproceedings{callback_scheduling,
title={Scheduling Performance Evaluation Framework for {ROS} 2 Applications},
author={Peng, Bo and Hasegawa, Atsushi and Azumi, Takuya},
booktitle={Proceedings of IEEE International Conference on Embedded Software and Systems (ICESS)},
year={2022}}
Also, check out ROSCON 2022 presentation titled "Chain-Aware ROS Evaluation Tool (CARET)" (video, slide).
- To learn about using CARET, refer to the CARET document
- To find API document, refer to CARET analyze API document
- caret
- Meta-repository containing
.repos
files to construct a CARET workspace
- Meta-repository containing
- CARET_trace
- Define tracepoints added by function hooking
- CARET_analyze
- Library for scripts to analyze and visualize data
- CARET_analyze_cpp_impl
- Efficient helper functions to analyze trace data written in C++
- ros2caret
- CLI commands like
ros2 caret
- CLI commands like
- CARET_doc
- Documentation
- CARET_demos
- Demo programs for CARET
- rclcpp
- The forked
rclcpp
including CARET-dedicated tracepoints
- The forked
- ros2_tracing
- The forked
ros2_tracing
including definition of CARET-dedicated tracepoints
- The forked