ros2_pulse
一款开源的 ROS 2 话题频率监控与节点存活检测工具,基于 LD_PRELOAD 技术注入 tracetools 钩子,实现零侵入、低开销的进程内监控,支持 Humble、Jazzy 和 Kilted 发行版
Timeline (last 90 days)
开发者 TanayK07 在 Reddit 上开源了一个名为 ros2_pulse 的工具,用于 ROS 2 话题频率监控与节点存活检测
ros2_pulse 无需重新编译节点、不加入 DDS 图、且开销极低
ros2_pulse 的核心是一个 LD_PRELOAD shim,挂载在 rclcpp 每次发布和回调时调用的 tracetools 钩子上,在进程内完成计数并将频率写入文件
ros2_pulse 通过 LD_PRELOAD 注入,对现有二进制文件即插即用,无需重新编译节点
ros2_pulse 探针完全在进程内工作,不作为额外订阅者加入 DDS 图,避免序列化开销,并能完整捕获进程内通信流量
ros2_pulse 热路径每条消息开销约为 0.3 纳秒
在 4,900 msg/s 的压力测试下,ros2_pulse 探针总 CPU 占用约为 2%
ros2_pulse 支持为每个话题设定预期频率,当实际频率低于预期时输出 WARN 级别日志
ros2_pulse 附带一个终端实时仪表盘,可通过 pip3 install ros2-pulse-top 安装并用 pulse-top --demo 体验
ros2_pulse 支持 Humble、Jazzy 和 Kilted 三个 ROS 2 发行版,采用 Apache-2.0 开源许可
2 more timeline events
All Facts (11)
ros2_pulse 支持 Humble、Jazzy 和 Kilted 三个 ROS 2 发行版,采用 Apache-2.0 开源许可
50%Unverifiedros2_pulse 无需重新编译节点、不加入 DDS 图、且开销极低
50%Unverifiedros2_pulse 的核心是一个 LD_PRELOAD shim,挂载在 rclcpp 每次发布和回调时调用的 tracetools 钩子上,在进程内完成计数并将频率写入文件
50%Unverifiedros2_pulse 通过 LD_PRELOAD 注入,对现有二进制文件即插即用,无需重新编译节点
50%Unverifiedros2_pulse 探针完全在进程内工作,不作为额外订阅者加入 DDS 图,避免序列化开销,并能完整捕获进程内通信流量
50%Unverifiedros2_pulse 热路径每条消息开销约为 0.3 纳秒
50%Unverified在 4,900 msg/s 的压力测试下,ros2_pulse 探针总 CPU 占用约为 2%
50%Unverifiedros2_pulse 支持为每个话题设定预期频率,当实际频率低于预期时输出 WARN 级别日志
50%Unverifiedros2_pulse 附带一个终端实时仪表盘,可通过 pip3 install ros2-pulse-top 安装并用 pulse-top --demo 体验
50%Unverifiedros2_pulse 项目已在 GitHub 开源,仓库地址为 TanayK07/ros2_pulse
50%Unverified开发者 TanayK07 在 Reddit 上开源了一个名为 ros2_pulse 的工具,用于 ROS 2 话题频率监控与节点存活检测
50%