Skip to content

[Foxy] Add support for ROS tracing tools #9

@carlossvg

Description

@carlossvg

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_active event 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:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions