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

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

Ouverte Adaptée aux débutants
#270 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
C++
Étoiles
201
Forks
111
Merge moyen
1 j 6 h
PR mergées (30 j)
10

Description

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.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le README du dépôt et examinez ses indications concernant les versions de l’agent/du client, en utilisant les branches signalées humble, jazzy et rolling comme cas de compatibilité. Ajoutez une note claire indiquant que la branche de l’agent doit correspondre à la distribution ROS du client ; le travail de documentation est terminé lorsque cette exigence et le risque d’un échec silencieux sont sans ambiguïté. Aucun test n’est mentionné dans l’issue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp
Domaine
documentation
Type d'issue
Documentation
Difficulté
1/5
Temps estimé
Moins d'une heure
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.