micro-ROS / micro-ROS/micro-ROS-Agent
Subscriptions silently drop when agent branch doesn't match client distro — undocumented
还没有人认领这个 Issue。
- 主要语言
- C++
- 星标
- 201
- 派生
- 111
- 平均合并
- 1 天 6 小时
- 30 天内合并 PR
- 10
描述
Hi,
Spent a while chasing a bug that turned out to be agent ↔ client version mismatch.
- Hardware description: STM32G491 (Cortex-M4), custom board, serial UART transport
- RTOS: Zephyr 4.1.x
- Installation type: modules (`micro_ros_zephyr_module`, jazzy branch)
- Version or commit hash: client on `jazzy` branch; agent `6.0.0`
#### Steps to reproduce the issue
1. Build a Zephyr firmware client from the `jazzy` branch of `micro_ros_zephyr_module`. Add at least one publisher and one subscription on the same node.
2. Run micro_ros_agent 6.0.0 (built from source) with serial transport, pointed at the firmware.
3. From host (ROS 2 jazzy), `ros2 topic echo ` — works, data is visible.
4. From host, `ros2 topic pub ...`. Subscription callback never fires on the firmware. Agent log at `-v6` shows DATA submessages being forwarded toward the client.
5. Stop everything. `git clone` `micro-ROS-Agent`, `git checkout jazzy`, build from source, restart with the same args.
6. Subscription callback fires correctly on the first try.
#### Expected behavior
Either:
- Tagged agent releases interoperate with any matching client, **or**
- A loud error / log line at session-establish when agent and client XRCE protocol versions don't line up.
#### Actual behavior
Subscription messages are silently dropped on the way to the client. No error, no warning, no log line at any verbosity. Publishers in the same direction work fine, so it looks superficially like a working session.
#### Additional information
The README doesn't mention that the agent branch has to match the client's ROS distro at runtime. Two asks:
1. **Docs:** add a compatibility note to the README — the agent must be built from the branch matching the client's distro (`humble`, `jazzy`, `rolling`). Happy to PR this.
2. **Optional:** at session-establish, log both the agent's and the client's claimed XRCE protocol version so a mismatch is loud rather than silent.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从仓库的 README 开始,检查其中关于 agent/client 版本的指导,并将报告的 humble、jazzy 和 rolling 分支作为兼容性案例。添加一条明确说明:agent 分支必须与 client 的 ROS 发行版匹配;当这一要求和静默失败的风险都已明确无歧义时,文档工作即告完成。issue 中未指定任何测试。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cpp
- 领域
- documentation
- Issue 类型
- 文档
- 难度
- 1/5
- 预计耗时
- 1 小时以内
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 68/100