micro-ROS / micro-ROS/micro-ROS-Agent

Subscriptions silently drop when agent branch doesn't match client distro — undocumented

オープン 初心者向け
#270 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
C++
スター
201
フォーク
111
平均マージ
1日 6時間
マージ済み PR(30日)
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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

リポジトリの README から始め、エージェント/クライアントのバージョンに関する記載を確認し、報告されている humble、jazzy、rolling ブランチを互換性のケースとして使用します。エージェントのブランチがクライアントの ROS ディストリビューションと一致している必要があることを明確に記載してください。この要件とサイレントに失敗するリスクが明確になれば、ドキュメント作業は完了です。issue ではテストは指定されていません。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
documentation
issue の種類
ドキュメント
難易度
1/5
見積もり時間
1時間未満
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
68/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。