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 on average 0.0033 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://github.com/ros2/ros2_tracing.
翻译:由于系统复杂程度和动态环境高,测试和调试已成为机器人软件开发的主要障碍。标准、中软件数据记录无法提供关于内部计算和性能瓶颈的充分信息。其他现有方法也针对非常具体的问题,因此无法用于多用途分析。此外,它们不适合实时应用。在本文件中,我们提供了ROS2_trace,这是一套灵活的追踪工具和多功能仪器集,用于ROS2。它允许利用低超LTTng追踪器收集实时分布系统的运行时间执行信息。工具还将追踪纳入宝贵的ROS 2 调控系统和其他可用工具。信息潜值实验显示,当启用所有ROS 2 仪表时,端对端信息悬浮度间接值平均为0.0033米,我们认为它适合生产实时系统。使用ros2_tract获得的ROS 2 执行信息可以与操作系统的跟踪数据相结合,从而能够进行更广泛的精确分析,帮助理解应用程序的执行,从而找到性能瓶颈和其他问题的原因。源代码:https 源代码:httpsqols