ros2_tracing: Multipurpose Low-Overhead Framework for Real-Time Tracing of ROS 2

01/02/2022
by   Christophe Bédard, et al.
0

Testing and debugging have become major obstacles for robot software development, because of high system complexity and dynamic environments. Standard, middleware-based data recording does not provide sufficient information on internal computation and performance bottlenecks. Other existing methods also target very specific problems and thus cannot be used for multipurpose analysis. Moreover, they are not suitable for real-time applications. In this paper, we present ros2_tracing, a collection of flexible tracing tools and multipurpose instrumentation for ROS 2. It allows collecting runtime execution information on real-time distributed systems, using the low-overhead LTTng tracer. Tools also integrate tracing into the invaluable ROS 2 orchestration system and other usability tools. A message latency experiment shows that the end-to-end message latency overhead, when enabling all ROS 2 instrumentation, is below 0.0055 ms, which we believe is suitable for production real-time systems. ROS 2 execution information obtained using ros2_tracing can be combined with trace data from the operating system, enabling a wider range of precise analyses, that help understand an application execution, to find the cause of performance bottlenecks and other issues. The source code is available at: https://gitlab.com/ros-tracing/ros2_tracing.

READ FULL TEXT
research
04/21/2022

Message Flow Analysis with Complex Causal Links for Distributed ROS 2 Systems

Distributed robotic systems rely heavily on publish-subscribe frameworks...
research
04/25/2022

Analyze, Debug, Optimize: Real-Time Tracing for Perception and Mapping Systems in ROS 2

Perception and mapping systems are among the most computationally, memor...
research
01/06/2021

Latency Analysis of ROS2 Multi-Node Systems

The Robot Operating System 2 (ROS2) targets distributed real-time system...
research
03/08/2021

DepGraph: Localizing Performance Bottlenecks in Multi-Core Applications Using Waiting Dependency Graphs and Software Tracing

This paper addresses the challenge of understanding the waiting dependen...
research
05/16/2022

Let's Trace It: Fine-Grained Serverless Benchmarking using Synchronous and Asynchronous Orchestrated Applications

Making serverless computing widely applicable requires detailed performa...
research
04/11/2023

Tracing OCaml Programs

This presentation will cover a framework for application-level tracing o...
research
03/31/2021

Execution of Partial State Machine Models

The iterative and incremental nature of software development using model...

Please sign up or login with your details

Forgot password? Click here to reset