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