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

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

Aperta Adatta ai principianti
#270 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C++
Stelle
201
Fork
111
Merge medio
1g 6h
PR unite (30g)
10

Descrizione

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 <firmware_pub_topic> — works, data is visible.
  4. From host, ros2 topic pub <firmware_sub_topic> .... 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.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dal README del repository e esamina le indicazioni sulle versioni dell’agente/client, usando i branch segnalati humble, jazzy e rolling come casi di compatibilità. Aggiungi una nota chiara che specifichi che il branch dell’agente deve corrispondere alla distribuzione ROS del client; il lavoro di documentazione è completato quando questo requisito e il rischio di un errore silenzioso sono privi di ambiguità. Nell’issue non viene indicato alcun test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
documentation
Tipo di issue
Documentazione
Difficoltà
1/5
Tempo stimato
Meno di un'ora
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
68/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.