-
Notifications
You must be signed in to change notification settings - Fork 40
Description
Currently we track statistics to measure real-time performance using different tools. Some of them are included in the project pendulum_tools and others are external (OSRF memory memory tools). To read this statistics we publish them using a ROS 2 publisher, which can be intrusive because it generates additional traffic, ROS 2 executables, etc.
In Eloquent ros2 tracing tools were introduced, these tools would allow to track most of the statistics we are currently tracking and even more. The advantages of using this approach are that we rely in only one tool and we can remove all the specific code to track statistics from the project. Also, the overhead of tracing tools is minimal, which makes it a less intrusive solution than the current approach.
These are some of the steps in order to add support for the ROS2 tracing tools:
- Update real-time instructions. Explain how to use tracing tools.
- Create launch file to run the demo with tracing enabled. (See the example)
- Add several jupyter scripts (See the example):
- Measure callbacks duration and jitter.
- Count the number of messages received and lost.
- Measure message latency.
- Measure the number of memory allocations.
- Measure the number of page faults. -> This must be enabled when building the kernel
- Capture the node
on_activeevent to process some statistics only in active state.
Some disadvantages:
- For the moment is only compatible with Linux because it uses Lttng under the hood.
- For the moment is not possible to track statistics at runtime (aka live-tracing).
Links: