ros2probe让机器人系统观测零干扰,精准还原通信状态。
ros2probe: Non-intrusive, Kernel-selective Observability for Robot Operating System 2 Middleware

- 通过解析发现包重构通信状态,内核级过滤仅捕获目标话题
- 观测时丢包率0%,发现图误差<0.5%,资源消耗降7~28倍
- 适合嵌入式机器人开发,兼容标准ROS 2工具链
机器人操作系统2(ROS 2)作为机器人中间件标准,以数据分发服务(DDS)为通信基础。现有观测工具需加入订阅者角色,引发探针效应:扩大发现范围、增加反序列化开销、报告丢包与真实接收不一致,饱和时甚至挤占正常消息。被动抓包虽无干扰但丢失语义且随流量线性增长。本文提出ros2probe,通过解析域内发现包重建完整通信状态,在内核层仅对用户指定话题进行最小代价捕获,实现零侵入观测。其接口和记录格式兼容标准ROS 2工具。在笔记本、Jetson及树莓派三类平台,两种DDS实现,七种机器人任务下,ros2probe使发现图误差控制在0.5%以内,而传统工具使发现量膨胀至2.6倍,饱和时丢包达38.5%;ros2probe实现1.0召回率,观察器CPU与内存占用降低7~28倍,可在嵌入式设备上稳定运行。
原文摘要 · Abstract (English)
Robot Operating System 2 (ROS 2), the de facto standard middleware framework for robots, runs each robot as a graph of nodes communicating over the Data Distribution Service (DDS), a publish/subscribe substrate. Observing this inter-node communication in real time is essential to robot development, yet it has a price. A tool can receive data only by joining the DDS domain as a subscriber that discovery has matched to the publisher, so observing folds the tool into the system it measures and perturbs it. We define this protocol-inherent perturbation as the observer's probe effect. It inflates the discovery plane, adds deserialization cost on the observer, makes the loss it reports diverge from what the subscriber actually received, and near saturation displaces the subscriber's messages. The only escape, capturing all wire traffic passively, discards ROS 2 message semantics and scales with total traffic, not what is observed. We present ros2probe, a non-intrusive observation framework that removes the probe effect. It reconstructs the full ROS 2 communication state from the domain's discovery packets at no bandwidth cost, then drives an in-kernel filter restricted to the topics the user asks for, lifting only those packets at minimal cost and observing what the real subscriber receives. Its interfaces and recordings match the standard ROS 2 tools. Across three hardware platforms (laptop, Jetson, and Raspberry Pi), two DDS implementations, and seven robot-operation workloads, ros2probe holds the discovery graph within 0.5% of an unobserved system, whereas domain-joining tools inflate discovery up to 2.6$\times$ and drop 38.5% of the subscriber's messages at saturation while ros2probe drops none. It reports loss with a recall of 1.0, cuts observer CPU and memory by up to 7$\times$ and 28$\times$, and stays practical on the embedded robots where existing tools overload the system.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。