https://github.com/tier4/caret
CARET (Chain-Aware ROS Evaluation Tool) is one of performance analysis tools dedicated with ROS 2 applications
https://github.com/tier4/caret
autoware lttng performance-analysis ros2
Last synced: 17 days ago
JSON representation
CARET (Chain-Aware ROS Evaluation Tool) is one of performance analysis tools dedicated with ROS 2 applications
- Host: GitHub
- URL: https://github.com/tier4/caret
- Owner: tier4
- License: apache-2.0
- Created: 2022-03-25T00:59:55.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-28T06:22:05.000Z (27 days ago)
- Last Synced: 2025-03-28T06:24:03.594Z (27 days ago)
- Topics: autoware, lttng, performance-analysis, ros2
- Language: Shell
- Homepage: https://tier4.github.io/caret_doc/main/
- Size: 192 KB
- Stars: 82
- Watchers: 52
- Forks: 16
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
[](https://github.com/tier4/caret_trace/actions/workflows/build-and-test.yaml)
[](https://github.com/tier4/caret_analyze/actions/workflows/pytest.yaml)
[](https://github.com/tier4/caret/actions/workflows/build_autoware.yaml)
[](https://github.com/tier4/CARET_report/actions/workflows/test_autoware.yaml)# CARET
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.
![]()
## Publications & presentations
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
```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}}
``````bibtex
@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](https://vimeo.com/showcase/9954564/video/767150288), [slide]()).
## Documentation
- To learn about using CARET, refer to the [caret document](https://tier4.github.io/caret_doc/main/)
- To find API document, refer to [caret analyze API document](https://tier4.github.io/caret_analyze/latest/)## Repository overview
- [caret](https://github.com/tier4/caret)
- Meta-repository containing `.repos` files to construct a CARET workspace
- [caret_trace](https://github.com/tier4/caret_trace)
- Define tracepoints added by function hooking
- [caret_analyze](https://github.com/tier4/caret_analyze)
- Library for scripts to analyze and visualize data
- [caret_analyze_cpp_impl](https://github.com/tier4/caret_analyze_cpp_impl.git)
- Efficient helper functions to analyze trace data written in C++
- [ros2caret](https://github.com/tier4/ros2caret.git)
- CLI commands like `ros2 caret`
- [caret_doc](https://github.com/tier4/caret_doc)
- Documentation
- [caret_demos](https://github.com/tier4/caret_demos)
- Demo programs for CARET
- [rclcpp](https://github.com/tier4/rclcpp/tree/v0.3.0)
- The forked `rclcpp` including CARET-dedicated tracepoints
- [ros2_tracing](https://github.com/tier4/ros2_tracing/tree/v0.3.0)
- The forked `ros2_tracing` including definition of CARET-dedicated tracepoints