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

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

Offen Anfängerfreundlich
#270 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
201
Forks
111
Ø Merge
1 T. 6 Std.
Gemergte PRs (30 T.)
10

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der README des Repositorys und überprüfe die dortigen Hinweise zu den Agent-/Client-Versionen, wobei die gemeldeten Branches humble, jazzy und rolling als Kompatibilitätsfälle verwendet werden. Füge einen klaren Hinweis hinzu, dass der Agent-Branch zur ROS-Distribution des Clients passen muss; die Dokumentationsarbeit ist abgeschlossen, wenn diese Anforderung und das Risiko eines stillen Fehlers unmissverständlich sind. Im Issue wird kein Test genannt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
documentation
Issue-Typ
Dokumentation
Schwierigkeit
1/5
Geschätzter Aufwand
Unter einer Stunde
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
68/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.